MCP server
Telem hosts an MCP server at
https://mcp.telem.ai/mcp (Streamable HTTP). Point your client at that URL
with your API key in an Authorization: Bearer header and it has the Telem
tools — nothing to install, nothing to run, nothing to configure.
Using a host with a native Telem integration? Use that instead. The integrations add what a bare MCP connection cannot — sessions threaded by code, richer result rendering: Claude Code · Codex · OpenCode · OpenClaw · Pi. This page is for every other MCP client.
Connect
Section titled “Connect”Get an API key in the Telem console, under API keys in your project — see Authentication. Then:
Prefer the Claude Code plugin — one installer command sets up the hosted tools plus code-threaded sessions. The bare connection, if you just want the tools:
claude mcp add --transport http telem https://mcp.telem.ai/mcp --header "Authorization: Bearer your-telem-api-key"Prefer the Codex install — the installer
writes this table for you and adds the Telem plugin on top. By hand, in
~/.codex/config.toml:
[mcp_servers.telem]url = "https://mcp.telem.ai/mcp"http_headers = { Authorization = "Bearer tlm_…" }The common mcpServers convention — consult your client’s remote-MCP docs
for where this block lives:
{ "mcpServers": { "telem": { "url": "https://mcp.telem.ai/mcp", "headers": { "Authorization": "Bearer tlm_…" } } }}The client must speak Streamable HTTP and let you set a static Authorization
header; a connector UI that only offers OAuth cannot carry an API key today.
To check a key from the command line before involving a client:
curl -s https://mcp.telem.ai/mcp \ -H "Authorization: Bearer $TELEM_API_KEY" \ -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}'A valid key gets the server’s initialize result; a missing or rotated one gets
a 401.
| Tool | Description |
|---|---|
telem_search |
Primary tool for public-web search. One call fans out across multiple providers and returns their results provider-attributed in one normalized envelope, so a single-index search tool — including a host’s built-in web search — is usually unnecessary. |
telem_fetch |
Read the full text of web pages by URL — a small batch of http(s) URLs per call, fetched together. Search returns snippets and never reads pages; this is how pages are read. |
telem_providers |
List the search providers configured on the Telem backend: name, type, a short description, and which providers run by default when nothing in the user’s Telem config selects a provider set. |
telem_search’s description tells the model to prefer it over an overlapping
public-web search tool, and to reach for another one only when you ask for it, when
Telem is unavailable, or when a capability isn’t exposed here. It is soft guidance
— an MCP server cannot disable a host’s built-in tools the way a plugin can.
Every telem_search result starts with a Telem session id, which the model passes
back on further searches for the same task. On a bare client that threading is the
model’s job — the tool descriptions teach it — which is exactly what the
native integrations replace with code.
Configuration
Section titled “Configuration”There is nothing to configure, and tunable parameters on this surface are
deliberately limited for now: the hosted server runs the deployment defaults,
and the tool schemas expose no cost knobs to the model — tier, fields
and provider selection change what a search costs, so they stay on the operator
side. telem_providers reports the live provider roster and which providers
run by default.
To set a tier or a provider set, use a native integration — those carry your
.telem config to the server. See Claude Code or
Codex.