MCP API
Connect MCP clients and AI coding agents to a Spice project
The MCP API exposes a project's configured tools over the Model Context Protocol using the Streamable HTTP transport. MCP clients, including AI coding agents, connect to the project's runtime, list the tools it serves, and call them to query the project's datasets and models.
Which tools a project exposes depends on the tools configured in its spicepod. See Model Context Protocol (MCP) for tool configuration.
Send an MCP message
POST https://<project-cname>.spiceai.io/v1/mcp
Sends a JSON-RPC message to the project's MCP server.
Headers
| Header | Type | Description |
|---|---|---|
X-API-Key | string | Your project API key |
Content-Type | string | application/json |
Accept | string | application/json for a single JSON-RPC response, or text/event-stream to receive an SSE stream |
Mcp-Session-Id | string | Session identifier returned by the server on initialize. Required on every request that follows it. |
Responses
| Status | Description |
|---|---|
200 | JSON-RPC response, returned as application/json or as text/event-stream when the server streams additional messages. |
202 | Message accepted. Returned for notifications and responses that do not require a reply. |
400 | Malformed JSON-RPC payload. |
404 | Unknown or expired Mcp-Session-Id. |
413 | Payload too large. The maximum message size is 32 MiB. |
curl -X POST "https://<project-cname>.spiceai.io/v1/mcp" \
-H "X-API-Key: <project-api-key>" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'Open a server-to-client stream
GET https://<project-cname>.spiceai.io/v1/mcp
Opens a long-lived server-to-client SSE stream for an existing session, as defined by the Streamable HTTP transport.
Headers
| Header | Type | Description |
|---|---|---|
X-API-Key | string | Your project API key |
Mcp-Session-Id | string | Session identifier of a session created by POST /v1/mcp. Required. |
Responses
| Status | Description |
|---|---|
200 | SSE stream (text/event-stream) of server-originated MCP messages. |
404 | Unknown or expired Mcp-Session-Id. |
Connect an AI coding agent
The portal generates the registration command for a project. Open the project, select Settings, then Endpoints, and use Connect an AI coding agent.
Keep the project API key in an environment variable rather than writing it into a command or a config file:
export SPICE_API_KEY="<project-api-key>"Claude Code
claude mcp add --transport http spice "https://<project-cname>.spiceai.io/v1/mcp" \
--header "X-API-Key: $SPICE_API_KEY"Codex
codex mcp add registers stdio servers only, so declare the Streamable HTTP server in ~/.codex/config.toml. The env_http_headers value names the environment variable to read, not the key itself:
[mcp_servers.spice]
url = "https://<project-cname>.spiceai.io/v1/mcp"
env_http_headers = { "X-API-Key" = "SPICE_API_KEY" }Grok CLI
grok mcp add --transport http spice "https://<project-cname>.spiceai.io/v1/mcp" \
--header "X-API-Key: $SPICE_API_KEY"See also:
- MCP Server recipe: using Spice as an MCP server.
- Project API Keys: creating and rotating project API keys.