Public MCP documentation

Quickstart

1. Pick a URL

Working handlers (same Vercel app):

https://houseofvibes.app/api/mcp
https://mcp.houseofvibes.app/api/mcp

Vanity rewrite (same handler) — preferred for Grok:

https://mcp.houseofvibes.app/mcp
https://houseofvibes.app/mcp

2. Public tools need no bearer

Omit Authorization for community + travel tools. Pass Authorization: Bearer <ADMIN_API_TOKEN> only for admin/ops tools.

export MCP_URL="https://mcp.houseofvibes.app/mcp"
# Optional for admin tools only:
# export ADMIN_API_TOKEN="…"   # secret — never commit

3. Initialize

curl -sS -X POST "$MCP_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": { "name": "curl", "version": "1.0" }
    }
  }'

4. Notify initialized (expect 202)

curl -sS -o /dev/null -w "%{http_code}\n" -X POST "$MCP_URL" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

5. List and call tools

curl -sS -X POST "$MCP_URL" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
curl -sS -X POST "$MCP_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": { "name": "leaderboard", "arguments": { "limit": 5 } }
  }'

Next