A hosted Model Context Protocol server with 16 read-only tools. Your API key is all you need: there is nothing to install or run.
https://cold-api.coldstate.ai/mcp
The server speaks Streamable HTTP (JSON-RPC 2.0) and is stateless. Authenticate with the same key you use for the REST API, sent as Authorization: Bearer cs_live_.... Each tool call is forwarded to the matching REST endpoint with your key, so rate limits and usage are counted per account exactly as they are for REST. New to the protocol? Read What is an MCP server?
Any MCP client that supports remote HTTP servers can connect. Add this to the client's MCP config and restart it:
{
"mcpServers": {
"coldstate": {
"url": "https://cold-api.coldstate.ai/mcp",
"headers": { "Authorization": "Bearer cs_live_..." }
}
}
}With the Claude Code CLI:
claude mcp add --transport http coldstate https://cold-api.coldstate.ai/mcp \ --header "Authorization: Bearer cs_live_..."
No key yet? Create a free account. The quickstart covers the same calls over REST.
Listing tools needs no key, so you can confirm the server is reachable before configuring a client. Send both content types in the Accept header:
curl -X POST https://cold-api.coldstate.ai/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'initialize and tools/list work without a key; tools/call requires one.
Search, fetch and verify facts from the 48.4M-entry knowledge base. The citation workflow is described in fetch, cite, verify.
POST /v1/search/globalSearch the global knowledge base (48.4M entries, 35 domains). Deterministic ranking, with a Ψ score and state per result. Optionally filter by domain.
querystring, required, max 2000 chars — The search query.domainstring — Filter by knowledge domain, e.g. MEDICINE. Case-insensitive.limitinteger, 1–100, default 10 — Max results to return.offsetinteger, default 0 — Offset for pagination.GET /v1/knowledge/fetchFetch a knowledge entry verbatim by its stable id, with a content_hash and kb_snapshot for reproducible citation.
idstring, required — Stable knowledge entry id.GET /v1/knowledge/citeCanonical, reproducible citation for an entry: title, domain, source, content_hash and kb_snapshot.
idstring, required — Stable knowledge entry id.POST /v1/knowledge/verifyVerify a previously cited fact is unchanged by comparing the content_hash you stored with the current knowledge base.
idstring, required — Stable knowledge entry id.content_hashstring, required — The content_hash from an earlier fetch or cite.GET /v1/knowledge/snapshotCurrent knowledge-base snapshot id. Pin it for reproducibility: the same query against the same kb_snapshot returns identical results.
GET /v1/knowledge/resolveResolve a name, alias or surface form to a canonical entry id. Returns the canonical entry plus alternatives.
querystring, required, max 500 chars — The name, term or alias to resolve.limitinteger, 1–5, default 4 — Max alternative candidates.POST /v1/knowledge/batchRun several queries in one call against a single consistent kb_snapshot.
queriesarray of strings, required, 1–10 — The queries to run.domainstring — Optional domain filter applied to all queries.limitinteger, 1–20, default 5 — Max results per query.GET /v1/knowledge/isomorphCross-domain structural analog of an entry: same structure, different domain.
idstring, required — Stable knowledge entry id.limitinteger, 1–35, default 8 — Max analogs (one per domain).GET /v1/knowledge/statsWith a query: total matches and the state distribution of the top results. Without: global knowledge-base stats.
querystring, max 2000 chars — Optional query to get coverage stats for.domainstring — Optional domain filter (with query).GET /v1/search/domainsList the knowledge domains in the global knowledge base with entry counts.
GET /v1/knowledge/capabilitiesMachine-readable manifest of the server: tools, domains, current kb_snapshot, guarantees and limits. Call it first to self-configure.
Search and inspect the indexes you have built from your own documents. Creating and deleting indexes is done over REST or in the dashboard; every MCP tool is read-only.
POST /v1/search · POST /v1/indexes/:id/searchSearch one of your own custom indexes by collection name or index id. Provide exactly one of collection or index_id.
querystring, required, max 2000 chars — The search query.collectionstring — Collection name to search.index_idstring — Index id to search, e.g. idx_…limitinteger, 1–100, default 10 — Max results to return.offsetinteger, default 0 — Offset for pagination.GET /v1/indexesList your custom indexes with their status, mode, document count and domain preset.
GET /v1/indexes/:id/documentsBrowse a custom index: your reference ids and metrics only, since document text is not stored.
index_idstring, required — Index id, e.g. idx_…limitinteger, 1–100, default 20 — Max documents to return.offsetinteger, default 0 — Offset for pagination.POST /v1/indexes/:id/explainExplain why a document ranked for a query, term by term. Deterministic and reproducible.
index_idstring, required — Index id, e.g. idx_…querystring, required, max 2000 chars — The query to explain against.doc_idstring, required — Document id, e.g. "doc_42" or "42".Queries are limited to 2000 characters, batches to 10 queries, and results to 100 per query. Plan quotas and rate limits are on the pricing page.
Machine-readable descriptions of the server: MCP server manifest, OpenAPI 3.1 and llms.txt.