romate-mcp-server

romate-mcp-server

This server exposes local stdio MCP tools as HTTP/SSE endpoints, enabling remote clients like Claude Desktop to call them. It supports single-tool and aggregated modes with authentication, auto-restart, and hot reload.

Category
Visit Server

README

๐Ÿš€ mcp-proxy-server

HTTP MCP Gateway โ€” ๅฐ†ๆœฌๅœฐ stdio MCP ๅทฅๅ…ทๆšด้œฒไธบ HTTP/SSE ๅ่ฎฎใ€‚

ไฝ ๅช้œ€่ฆ้…็ฝฎๆœฌๅœฐๆ‰ง่กŒ็š„ๅ‘ฝไปค๏ผŒromate-mcp-server ๅฐฑไผš่‡ชๅŠจๅฐ†ไปปๆ„ stdio MCP ๆœๅŠกๅ™จๆณจๅ†Œไธบ HTTP ็ซฏ็‚น๏ผŒ่ฎฉ่ฟœ็จ‹ๅฎขๆˆท็ซฏ๏ผˆๅฆ‚ Claude Desktopใ€Cline ็ญ‰๏ผ‰้€š่ฟ‡็ฝ‘็ปœ่ฐƒ็”จใ€‚


็‰นๆ€ง

็‰นๆ€ง ่ฏดๆ˜Ž
๐Ÿ”Œ ้›ถไปฃ็ ้›†ๆˆ ๅช้œ€ YAML ้…็ฝฎๅ‘ฝไปค๏ผŒๆ— ้œ€ไฟฎๆ”นไปปไฝ• MCP ๆœๅŠกๅ™จไปฃ็ 
๐ŸŒ HTTP + SSE ๅŒๅ่ฎฎ ๆ”ฏๆŒ Streamable HTTP ๅ’Œ Server-Sent Events ไธค็งไผ ่พ“ๆ–นๅผ
๐Ÿ”— ่šๅˆๆจกๅผ ๅ•ไธ€่ทฏๅพ„่šๅˆๆ‰€ๆœ‰ๅทฅๅ…ท๏ผŒ่‡ชๅŠจ proxyName_toolName ๅ‰็ผ€่ทฏ็”ฑ
๐Ÿ” Bearer Token ้‰ดๆƒ ๅฏ้€‰ Token ้‰ดๆƒ๏ผŒๆ”ฏๆŒๆŽ’้™ค่ทฏๅพ„
โ™ป๏ธ ่‡ชๅŠจ้‡ๅฏ ๅญ่ฟ›็จ‹ๅดฉๆบƒๅŽ่‡ชๅŠจ้‡ๅฏ๏ผŒๆŒ‡ๆ•ฐ้€€้ฟ็ญ–็•ฅ
โฑ๏ธ ่ถ…ๆ—ถๆŽงๅˆถ ๆกๆ‰‹่ถ…ๆ—ถ 10s๏ผŒๅทฅๅ…ท่ฐƒ็”จ่ถ…ๆ—ถ 60s
๐Ÿ”„ ้…็ฝฎ็ƒญ้‡่ฝฝ ็›‘ๅฌ้…็ฝฎๆ–‡ไปถๅ˜ๆ›ด๏ผŒ่‡ชๅŠจๅขžๅˆ ๆ”นไปฃ็†ๅฎžไพ‹
๐Ÿฉบ ๅฅๅบทๆฃ€ๆŸฅ /health ๅ’Œ /tools ็ซฏ็‚น๏ผŒๅฎžๆ—ถ็›‘ๆŽง็Šถๆ€

ๅฟซ้€Ÿๅผ€ๅง‹

ๅฎ‰่ฃ…

git clone <your-repo> && cd romate-mcp-server
npm install
npm run build

้…็ฝฎ

ๅˆ›ๅปบ config.yaml๏ผš

server:
  port: 3100
  host: "0.0.0.0"
  auth:
    token: "your-secret-token"      # ๅฏ้€‰๏ผŒBearer Token ้‰ดๆƒ
    excludePaths:
      - "/health"                    # ๆ— ้œ€้‰ดๆƒ็š„่ทฏๅพ„

tools:
  - name: "filesystem"
    description: "ๆ–‡ไปถ็ณป็ปŸๆ“ไฝœๅทฅๅ…ท"
    command: "npx"
    args:
      - "-y"
      - "@modelcontextprotocol/server-filesystem"
      - "/tmp"
    restart: true
    restartDelay: 2000

  - name: "github"
    description: "GitHub API ๅทฅๅ…ท"
    command: "npx"
    args:
      - "-y"
      - "@modelcontextprotocol/server-github"
    env:
      GITHUB_TOKEN: "${GITHUB_TOKEN}"   # ๆ”ฏๆŒ็Žฏๅขƒๅ˜้‡ๆ’ๅ€ผ

ๅฏๅŠจ

# ๅผ€ๅ‘ๆจกๅผ๏ผˆ็ƒญ้‡่ฝฝ๏ผ‰
npm run dev -- ./config.yaml

# ็”Ÿไบงๆจกๅผ
npm run build
node dist/index.js ./config.yaml

่ทฏ็”ฑๆ€ป่งˆ

่ทฏๅพ„ ๆ–นๆณ• ่ฏดๆ˜Ž
/health GET ๅฅๅบทๆฃ€ๆŸฅ๏ผˆๆ— ้œ€้‰ดๆƒ๏ผ‰
/tools GET ๅˆ—ๅ‡บๆ‰€ๆœ‰ๅทฒๆณจๅ†Œๅทฅๅ…ท
/mcp/:toolName POST ๅ•ๅทฅๅ…ท Streamable HTTP
/mcp/:toolName/sse GET ๅ•ๅทฅๅ…ท SSE ็ซฏ็‚น
/mcp/:toolName/message?sessionId= POST ๅ•ๅทฅๅ…ท SSE ๆถˆๆฏ
/mcp POST ่šๅˆๆจกๅผ โ€” ๆ‰€ๆœ‰ๅทฅๅ…ท็ปŸไธ€ๅ…ฅๅฃ
/mcp/sse GET ่šๅˆๆจกๅผ SSE ็ซฏ็‚น
/mcp/message?sessionId= POST ่šๅˆๆจกๅผ SSE ๆถˆๆฏ

ไฝฟ็”จ็คบไพ‹

ๅ•ๅทฅๅ…ทๆจกๅผ

# ๅˆ—ๅ‡บๅทฅๅ…ท
curl -H "Authorization: Bearer your-secret-token" \
  -H "Content-Type: application/json" \
  -X POST http://localhost:3100/mcp/filesystem \
  -d '{"method":"tools/list","id":1}'

# ่ฐƒ็”จๅทฅๅ…ท
curl -H "Authorization: Bearer your-secret-token" \
  -H "Content-Type: application/json" \
  -X POST http://localhost:3100/mcp/filesystem \
  -d '{
    "method": "tools/call",
    "params": {
      "name": "read_file",
      "arguments": { "path": "/tmp/test.txt" }
    },
    "id": 2
  }'

่šๅˆๆจกๅผ

่šๅˆๆจกๅผไธ‹๏ผŒๅทฅๅ…ทๅ่‡ชๅŠจๆทปๅŠ  {proxyName}_ ๅ‰็ผ€ไปฅ้ฟๅ…ๅ†ฒ็ช๏ผš

# ๅˆ—ๅ‡บๆ‰€ๆœ‰ๅทฅๅ…ท๏ผˆ่ฟ”ๅ›ž echo_echo, filesystem_read_file, github_search_repos ็ญ‰๏ผ‰
curl -H "Authorization: Bearer your-secret-token" \
  -H "Content-Type: application/json" \
  -X POST http://localhost:3100/mcp \
  -d '{"method":"tools/list","id":1}'

# ่ฐƒ็”จๅทฅๅ…ท โ€” ไฝฟ็”จ proxyName_toolName ๆ ผๅผ
curl -H "Authorization: Bearer your-secret-token" \
  -H "Content-Type: application/json" \
  -X POST http://localhost:3100/mcp \
  -d '{
    "method": "tools/call",
    "params": {
      "name": "filesystem_read_file",
      "arguments": { "path": "/tmp/test.txt" }
    },
    "id": 2
  }'

SSE ๆจกๅผ๏ผˆ้€‚็”จไบŽ Claude Desktop ็ญ‰ๅฎขๆˆท็ซฏ๏ผ‰

# 1. ๅฎขๆˆท็ซฏๅปบ็ซ‹ SSE ่ฟžๆŽฅ
GET /mcp/filesystem/sse
โ†’ event: endpoint
โ†’ data: http://localhost:3100/mcp/filesystem/message?sessionId=filesystem-1
โ†’ event: tools_list
โ†’ data: [...]

# 2. ๅฎขๆˆท็ซฏๅ‘ endpoint URL ๅ‘้€ JSON-RPC ่ฏทๆฑ‚
POST http://localhost:3100/mcp/filesystem/message?sessionId=filesystem-1
Content-Type: application/json

{"method":"tools/list","id":1}

# 3. ๅ“ๅบ”้€š่ฟ‡ SSE ่ฟžๆŽฅ่ฟ”ๅ›ž
โ†’ event: message
โ†’ data: {"jsonrpc":"2.0","result":{"tools":[...]},"id":1}

MCP ๅฎขๆˆท็ซฏ้…็ฝฎ

romate-mcp-server ๅ…ผๅฎนๆ‰€ๆœ‰ๆ”ฏๆŒ HTTP/SSE ไผ ่พ“็š„ MCP ๅฎขๆˆท็ซฏใ€‚ไปฅไธ‹ๆ˜ฏไธ€ไบ›ๅธธ่งๅฎขๆˆท็ซฏ็š„้…็ฝฎๆ–นๅผ๏ผš

Claude Desktop

ๅœจ claude_desktop_config.json ไธญๆทปๅŠ  MCP ๆœๅŠกๅ™จ้…็ฝฎ๏ผš

{
  "mcpServers": {
    "romate-filesystem": {
      "type": "sse",
      "url": "http://your-server:3100/mcp/filesystem/sse",
      "headers": {
        "Authorization": "Bearer your-secret-token"
      }
    },
    "romate-github": {
      "type": "sse",
      "url": "http://your-server:3100/mcp/github/sse",
      "headers": {
        "Authorization": "Bearer your-secret-token"
      }
    }
  }
}

Cline / Roo Code / Claude Dev

ๅœจ MCP ้…็ฝฎๆ–‡ไปถ๏ผˆ้€šๅธธไธบ ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json ๆˆ–็ฑปไผผ่ทฏๅพ„๏ผ‰ไธญๆทปๅŠ ๏ผš

{
  "mcpServers": {
    "romate-filesystem": {
      "type": "sse",
      "url": "http://your-server:3100/mcp/filesystem/sse",
      "headers": {
        "Authorization": "Bearer your-secret-token"
      }
    }
  }
}

่šๅˆๆจกๅผๅฎขๆˆท็ซฏ้…็ฝฎ

ๅฆ‚ๆžœๅธŒๆœ›ๅœจไธ€ไธช SSE ่ฟžๆŽฅไธญ่ฎฟ้—ฎๆ‰€ๆœ‰ๅทฅๅ…ท๏ผŒไฝฟ็”จ่šๅˆ็ซฏ็‚น๏ผš

{
  "mcpServers": {
    "romate-all-tools": {
      "type": "sse",
      "url": "http://your-server:3100/mcp/sse",
      "headers": {
        "Authorization": "Bearer your-secret-token"
      }
    }
  }
}

ๆณจๆ„๏ผš่šๅˆๆจกๅผไธ‹ๅทฅๅ…ทๅไผšๅธฆๆœ‰ {proxyName}_ ๅ‰็ผ€๏ผŒไพ‹ๅฆ‚ filesystem_read_fileใ€github_search_reposใ€‚

่‡ชๅฎšไน‰ๅฎขๆˆท็ซฏ๏ผˆStreamable HTTP๏ผ‰

ๆ”ฏๆŒ MCP Streamable HTTP ไผ ่พ“็š„ๅฎขๆˆท็ซฏๅฏไปฅ็›ดๆŽฅไฝฟ็”จ POST ็ซฏ็‚น๏ผš

POST http://your-server:3100/mcp/filesystem
Content-Type: application/json
Authorization: Bearer your-secret-token

{"method":"tools/list","id":1}

้…็ฝฎๅ‚่€ƒ

server ้…็ฝฎ

ๅญ—ๆฎต ็ฑปๅž‹ ้ป˜่ฎคๅ€ผ ่ฏดๆ˜Ž
port number 3100 HTTP ็›‘ๅฌ็ซฏๅฃ
host string "0.0.0.0" ็›‘ๅฌๅœฐๅ€
auth.token string โ€” Bearer Token๏ผŒไธ้…็ฝฎๅˆ™ไธๅฏ็”จ้‰ดๆƒ
auth.excludePaths string[] ["/health"] ๆ— ้œ€้‰ดๆƒ็š„่ทฏๅพ„ๅ‰็ผ€

tools[] ้…็ฝฎ

ๅญ—ๆฎต ็ฑปๅž‹ ้ป˜่ฎคๅ€ผ ่ฏดๆ˜Ž
name string โ€” ๅฟ…ๅกซใ€‚ๅทฅๅ…ทๅ”ฏไธ€ๆ ‡่ฏ†ๅ
description string "" ๅทฅๅ…ทๆ่ฟฐ
command string โ€” ๅฟ…ๅกซใ€‚ๅฏๅŠจๅ‘ฝไปค
args string[] [] ๅ‘ฝไปคๅ‚ๆ•ฐ
env object {} ็Žฏๅขƒๅ˜้‡๏ผŒๆ”ฏๆŒ ${VAR_NAME} ๆ’ๅ€ผ
cwd string โ€” ๅทฅไฝœ็›ฎๅฝ•
restart boolean true ๅดฉๆบƒๅŽๆ˜ฏๅฆ่‡ชๅŠจ้‡ๅฏ
restartDelay number 2000 ้‡ๅฏๅŸบ็ก€ๅปถ่ฟŸ(ms)๏ผŒๆŒ‡ๆ•ฐ้€€้ฟ x2๏ผŒไธŠ้™ 30s

ๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  HTTP Client                     โ”‚
โ”‚        (Claude Desktop, Cline, curl, etc.)       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚ HTTP/SSE
                   โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              romate-mcp-server                   โ”‚
โ”‚                                                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”‚
โ”‚  โ”‚  Auth    โ”‚  โ”‚  Routes  โ”‚  โ”‚  Health  โ”‚       โ”‚
โ”‚  โ”‚ Middlewareโ”‚  โ”‚  /mcp/*  โ”‚  โ”‚  /health โ”‚       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚
โ”‚                     โ”‚                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚            ProxyManager                      โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚ โ”‚
โ”‚  โ”‚  โ”‚ McpProxy โ”‚  โ”‚ McpProxy โ”‚  โ”‚ McpProxy โ”‚   โ”‚ โ”‚
โ”‚  โ”‚  โ”‚ (echo)   โ”‚  โ”‚(fs)      โ”‚  โ”‚(github)  โ”‚   โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚              โ”‚              โ”‚
           โ–ผ              โ–ผ              โ–ผ
     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ”‚  stdio   โ”‚  โ”‚  stdio   โ”‚  โ”‚  stdio   โ”‚
     โ”‚ MCP ่ฟ›็จ‹ โ”‚  โ”‚ MCP ่ฟ›็จ‹ โ”‚  โ”‚ MCP ่ฟ›็จ‹ โ”‚
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅทฅไฝœๆต็จ‹

  1. ๅฏๅŠจ โ†’ ๅŠ ่ฝฝ YAML ้…็ฝฎ โ†’ ไธบๆฏไธชๅทฅๅ…ทๅˆ›ๅปบ McpProxy ๅฎžไพ‹
  2. ่ฟžๆŽฅ โ†’ ๆฏไธช McpProxy ้€š่ฟ‡ StdioClientTransport ๅฏๅŠจๅญ่ฟ›็จ‹ โ†’ ๅฎŒๆˆ MCP ๆกๆ‰‹ โ†’ ็ผ“ๅญ˜ tools/resources/prompts
  3. ไปฃ็† โ†’ HTTP ่ฏทๆฑ‚ๅˆฐ่พพ โ†’ ้‰ดๆƒ โ†’ ่ทฏ็”ฑๅˆฐๅฏนๅบ” McpProxy โ†’ JSON-RPC ่ฐƒ็”จ่ฝฌๅ‘ๅˆฐๅญ่ฟ›็จ‹ โ†’ ่ฟ”ๅ›ž็ป“ๆžœ
  4. ๅฎน้”™ โ†’ ๅญ่ฟ›็จ‹ๅดฉๆบƒ โ†’ onclose ่งฆๅ‘ โ†’ ๆŒ‡ๆ•ฐ้€€้ฟ่‡ชๅŠจ้‡ๅฏ๏ผˆrestart: true ๆ—ถ๏ผ‰
  5. ็ƒญ้‡่ฝฝ โ†’ ้…็ฝฎๆ–‡ไปถๅ˜ๆ›ด โ†’ ๅฏนๆฏ”ๆ–ฐๆ—ง้…็ฝฎ โ†’ ่‡ชๅŠจๅขž/ๅˆ /ๆ”นไปฃ็†ๅฎžไพ‹

ๅผ€ๅ‘

# ็ฑปๅž‹ๆฃ€ๆŸฅ
npm run typecheck

# ๅผ€ๅ‘ๆจกๅผ๏ผˆtsx watch ่‡ชๅŠจ้‡ๅฏ๏ผ‰
npm run dev -- ./config.yaml

# ๆž„ๅปบ
npm run build

# ็”ŸไบงๅฏๅŠจ
npm start -- ./config.yaml

่ฎธๅฏ่ฏ

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured