MCP server for AI assistants

Work with your geofences from any AI assistant.

Add https://mcp.mapsocket.com/mcp to Claude, ChatGPT, Groq or any MCP client and it gets the geofencing API as tools. Ask for a ten-minute walking area around a station, check which of fifty addresses fall in your service area, or see who arrived at the depot yesterday.

What you get

  • Hosted, nothing to install

    One URL for every client: https://mcp.mapsocket.com/mcp, over Streamable HTTP. Prefer to run it yourself? The same server is on npm as @mapsocket/mcp.

  • Sign in, pick a project

    Claude and ChatGPT connect with OAuth: you sign in to MapSocket, choose a project and approve. The assistant never sees a key, and you can disconnect by revoking it under API keys.

  • Keys for API clients

    Groq, the OpenAI and Anthropic APIs, Cursor and VS Code can send a project key as a bearer token instead. A secret key unlocks every tool; a publishable key only lookups, tracking and trips.

  • Read-only when you want

    Connections are read-only unless you tick “Allow changes”. Key callers can add ?read_only=true to the URL. Deletes are marked destructive, so clients ask first.

How it works

  1. Claude

    Settings → Connectors → Add custom connector. Paste https://mcp.mapsocket.com/mcp, then sign in to MapSocket and pick a project.

  2. ChatGPT

    Settings → Apps & Connectors → Advanced, turn on Developer mode, then Create. Paste the URL, choose OAuth, and sign in to MapSocket.

  3. Groq, OpenAI and Anthropic APIs

    Add a remote MCP tool with the URL and an Authorization header carrying a project key. The model calls MapSocket during the request.

  4. Cursor, VS Code, Claude Code

    Add the URL as an HTTP MCP server. Clients that support OAuth sign you in; others take the key as a header.

Groq (Responses API)
curl https://api.groq.com/openai/v1/responses \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-oss-120b",
    "input": "Is 40.7411,-73.9897 inside any of my geofences?",
    "tools": [{
      "type": "mcp",
      "server_label": "mapsocket",
      "server_url": "https://mcp.mapsocket.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_…" },
      "require_approval": "never"
    }]
  }'
Claude Code
claude mcp add --transport http mapsocket https://mcp.mapsocket.com/mcp
Cursor and other clients
{
  "mcpServers": {
    "mapsocket": {
      "url": "https://mcp.mapsocket.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_…" }
    }
  }
}
Run it locally instead
MAPSOCKET_API_KEY=sk_live_… npx -y @mapsocket/mcp

Good to know

  • Each connection works with one project. Connect again to use another.
  • Keys you send as a header are passed to the MapSocket API and nowhere else. Use a project you're happy for the assistant to change, or read-only mode.

Read more