Getting Started with Fenceline MCP Server

The Fenceline MCP Server is an authenticated preview for fence-contractor business data, material intelligence, and permit analysis. Browser automation and permit submission are unavailable while their security boundaries are being hardened.

What is MCP?

Model Context Protocol (MCP) is a standardized way for AI applications to connect to external data sources and tools. It enables seamless integration between AI assistants and business systems.

Key Features

🏛️ Permit Analysis

Analyze stored jurisdiction requirements and manage application records without portal submission.

🧱 Material Intelligence

AI-powered material search, pricing analysis, and inventory management.

🔍 Business Intelligence

Vector search across your business data with RAG capabilities.

🤝 Supplier Data

Search supported supplier catalogs and resolve authoritative pricing.

Quick Start

  1. Get an API Key - Contact your administrator for MCP access permissions
  2. Test the Console - Use our interactive console to explore tools
  3. Integrate - Connect your applications using our API

Available Transports

Streamable HTTP (recommended)

Endpoint: https://mcp.fenceline.ai/mcp

Use the current MCP SDK transport for session initialization, request/response calls, and explicit session termination.

Legacy Server-Sent Events (SSE)

Endpoint: https://mcp.fenceline.ai/mcp/sse

Use an MCP SDK client that can attach an API key header. Native browser EventSource doesn't support custom authentication headers.

JSON-RPC HTTP

Endpoint: https://mcp.fenceline.ai/mcp/rpc

Simple request/response pattern ideal for server-to-server integrations.

Authentication

All MCP tools require API key authentication. Configure the current MCP SDK transport to include your key on every request:

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';

const transport = new StreamableHTTPClientTransport(
  new URL('https://mcp.fenceline.ai/mcp'),
  { requestInit: { headers: { 'X-API-Key': process.env.MCP_API_KEY } } }
);
const client = new Client({ name: 'my-client', version: '1.0.0' });
await client.connect(transport);

For a single request without an MCP session, the compatibility JSON-RPC endpoint accepts the same header:

curl -X POST https://mcp.fenceline.ai/mcp/rpc \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Next Steps