All Guides

Any MCP Client

Connect any client that supports the Model Context Protocol using StreamableHTTP transport.

Available Endpoints

Left Hook Public MCP

https://mcp.lefthook.com/mcp

22 tools, 7 resources, 3 prompts | No auth | Stateless

Left Hook Docs MCP

https://mcp.lefthook.com/docs/mcp

11 tools, 6 resources | No auth | Stateless

Protocol Details

TransportStreamableHTTP (MCP spec 2025-03-26)
Content-Typeapplication/json
Acceptapplication/json, text/event-stream
Message FormatJSON-RPC 2.0
AuthenticationNone required
CORSAll origins (*) allowed
SessionStateless (no Mcp-Session-Id required)

Example: Initialize Connection

Send a JSON-RPC initialize request to the endpoint:

curl -X POST https://mcp.lefthook.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": {
        "name": "my-client",
        "version": "1.0.0"
      }
    }
  }'

Example: List Tools

curl -X POST https://mcp.lefthook.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
  }'

Example: Call a Tool

curl -X POST https://mcp.lefthook.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "search_catalog",
      "arguments": {
        "query": "CRM integrations"
      }
    }
  }'

MCP SDK Configuration

If you're using the official @modelcontextprotocol/sdk TypeScript client:

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

const transport = new StreamableHTTPClientTransport(
  new URL("https://mcp.lefthook.com/mcp")
);

const client = new Client({
  name: "my-app",
  version: "1.0.0",
});

await client.connect(transport);

// List available tools
const tools = await client.listTools();
console.log(tools);

// Call a tool
const result = await client.callTool({
  name: "search_catalog",
  arguments: { query: "CRM integrations" },
});
console.log(result);

MCP Config File

For clients that read mcp.json or claude_desktop_config.json:

{
  "mcpServers": {
    "lefthook-catalog": {
      "url": "https://mcp.lefthook.com/mcp"
    },
    "lefthook-docs": {
      "url": "https://mcp.lefthook.com/docs/mcp"
    }
  }
}