Skip to content
Teramot MCP — Overview

Teramot MCP — Overview

The Teramot Model Context Protocol (MCP) server lets any MCP-compatible AI client (Claude, ChatGPT, Cursor, and others) work directly with your Teramot data platform. Once connected, the client can explore your workspaces, projects, and data sources, preview and query tables, and build new results (gold) tables — all through natural language.

It implements the Streamable HTTP MCP transport with OAuth 2.0 (or a static token) for authentication.

Connection essentials

Endpointhttps://mcp.teramot.com/mcp
TransportStreamable HTTP (POST for JSON-RPC, GET for the SSE stream)
Client ID5nldf3wj83yz9f6zbrsjx
AuthenticationOAuth 2.0 + PKCE, or a static API key (Bearer token)
Serverteramot-mcp v0.1.0

Tip

Most users never touch the protocol directly — see Connecting your client for copy-paste setup for Claude, ChatGPT, Cursor, v0.dev, and Antigravity. This page documents the underlying protocol for custom integrations.

How connecting works

  1. The client points at https://mcp.teramot.com/mcp and (for OAuth clients) the Client ID above.
  2. The client calls initialize and tools/list to discover capabilities — these require no authentication.
  3. For any real work (tools/call), the client authenticates with a Bearer token, obtained either via the automatic OAuth flow or a static API key. See Authentication.

Transport & endpoints

All traffic goes to a single endpoint, https://mcp.teramot.com/mcp.

POST /mcp

Carries JSON-RPC 2.0 requests (initialize, tools/list, tools/call, …). Responses are returned as application/json or, for streaming operations, as text/event-stream.

POST /mcp HTTP/1.1
Host: mcp.teramot.com
Authorization: Bearer YOUR_TOKEN
Accept: application/json, text/event-stream
Content-Type: application/json
Mcp-Session-Id: SESSION_UUID   # echoed after initialize

GET /mcp

Opens a Server-Sent Events stream for server-to-client messages. Requires the Mcp-Session-Id header returned by initialize; without it the server responds 401 Unauthorized (missing Mcp-Session-Id; re-initialize via POST).

Bootstrap methods (no authentication)

To let clients discover the server before authorizing, three methods skip auth:

  • initialize
  • tools/list
  • notifications/initialized

Every other method requires a valid Bearer token.

Session management

initialize returns an Mcp-Session-Id response header. Include it on subsequent requests and on the GET /mcp stream. Sessions are held in memory and reset when the server restarts — if a session is lost, simply call initialize again.

MCP methods

initialize

Negotiate protocol version and capabilities. No authentication required.

{
  "jsonrpc": "2.0",
  "id": "init-1",
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": { "tools": {} },
    "clientInfo": { "name": "MyApp", "version": "1.0.0" }
  }
}

The response carries the Mcp-Session-Id header for subsequent requests.

tools/list

List the available tools. No authentication required (part of the bootstrap flow). See the full catalog in Tools Reference.

{
  "jsonrpc": "2.0",
  "id": "list-tools",
  "method": "tools/list"
}

tools/call

Execute a tool. Authentication required (Bearer token).

{
  "jsonrpc": "2.0",
  "id": "call-tool",
  "method": "tools/call",
  "params": {
    "name": "preview_table",
    "arguments": { "table_name": "sales" }
  }
}

Error handling

Standard JSON-RPC 2.0 error codes apply:

{
  "jsonrpc": "2.0",
  "id": "request-id",
  "error": { "code": -32602, "message": "Invalid params" }
}
CodeMeaning
-32700Parse error (invalid JSON)
-32600Invalid request (malformed JSON-RPC)
-32601Method not found
-32602Invalid params
-32000Internal / authentication error

At the HTTP layer, a missing or expired token returns 401 Unauthorized.

Next steps