Helicone MCP server: two tools, 4,919 tokens
Helicone answers questions about LLM spend through two tools. Those two cost more context than OpenSearch's nine tools.
Last verified 1 September 2026 · from Helicone's documentation, the npm registry and the server's own tools/list response
This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.
Summary
Helicone publishes an official MCP server with exactly two tools: query_requests and query_sessions. Both read your logged LLM traffic.
Those two tools cost about 4,919 tokens to register, which is more than OpenSearch's nine and roughly what Arize Phoenix's twenty-seven cost. The cause is the filter schema rather than description length.
The package has not been released since 4 November 2025 and remains at 0.1.6, so treat it as a working but lightly maintained surface.
What is the Helicone MCP server?
It is Helicone's server for the Model Context Protocol. Helicone is a proxy and observability layer for LLM calls, so what the agent gains is a query interface over your own model traffic: which requests ran, what they cost, how long they took.
The surface is deliberately narrow. query_requests reads individual LLM calls and query_sessions reads grouped ones. There is no writing, no configuration, and no alerting.
The narrow surface is deliberate. It is also why the context cost is surprising. Both tools accept a rich filter object, and that filter is expressed in full in the tool's input schema.
Helicone covers AI cost management broadly, reaches part of the way into agent observability, and reaches nothing in code review, release or production observability.
| Part of the work | What Helicone has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | None | No code-review product |
| CI & release | None | No CI product, and no build or test pipeline |
| Production observability | None | No infrastructure telemetry. Helicone sees model calls, not machines |
| Agent observability & evals | Request and session logs | Partial. Sessions group related calls, which is a trace of a sort. There are no evaluations, scores or prompt versions here |
| AI cost management | Per-request cost, tokens and latency | Yes. Core strength, and the product's whole purpose |
For an agent, that means Helicone answers what your LLM calls cost and how they behaved, and nothing else. An agent connected here can tell you which model spent the most over a chosen window and which sessions ran slowest. It cannot tell you whether the output was any good, so this connector sits beside an evaluation tool rather than replacing one.
What can an AI agent do with Helicone?
| Task | Tools | Works | Watch out for |
|---|---|---|---|
| Find what yesterday's LLM spend went on | query_requests | Yes | Filter by time explicitly. There is no implied default window. |
| Trace a slow multi-call flow | query_sessions | Yes | Sessions exist only if your integration sets a session identifier |
| Compare cost across models | query_requests | Yes | One tool, one filter. A cost comparison is one call per model. |
| Read the prompt and response bodies | query_requests | Yes | includeBodies returns full prompt and response text, which is both sensitive and large |
| Score or evaluate output quality | Langfuse, LangSmith or Arize Phoenix | No, separate server | No evaluators or scores. Helicone records calls; judging them is another tool's job |
| Investigate an infrastructure incident | Grafana or Datadog | No, separate server | No host, container or database telemetry of any kind |
2 tools registered, both on by default
- Requests1
query_requests- Sessions1
query_sessions
Both read. The size of this connector is in the schemas rather than the tool count: they average 10,074 characters, the largest measured in this guide. Counted on 21 August 2026.
What connecting costs before the first question
A context window is the amount of text a model can hold at once, and connecting uses some of it before the agent asks anything. Every tool the server registers sends its name, description and input schema to the model when the session starts. The tool list is charged whether or not a single tool is called.
Two tools here cost more than OpenSearch's nine. The descriptions are short, at 110 characters each. The input schemas average 10,074 characters per tool, the largest measured anywhere in this guide.
The reason is the filter. query_requests accepts a nested filter object that enumerates every filterable column against every operator. Every column gets one property for equals and one for not-equals. The pattern repeats across the whole request model. It is expressive, and the model pays for the whole grammar at connection whether or not it filters on anything.
| Tool set | Tools | Tokens (GPT-5.6, GPT-5.5) | Tokens (GPT-4, GPT-3.5) | Tokens (Claude Haiku 4.5 to Opus 5) | Share of a 200,000-token window |
|---|---|---|---|---|---|
| Every tool, as registered | 2 | 4,919 to 6,802 | 4,743 to 6,791 | 7,157 to 9,250 | 2.4% to 4.6% |
Encodings: GPT-5.6, GPT-5.5 o200k_base; GPT-4, GPT-3.5 cl100k_base; Claude Haiku 4.5 to Opus 5 count_tokens. Counted 21 August 2026 from tools/list on the published @helicone/mcp package. It was run locally with a placeholder key.
Registration is static, so no Helicone account was involved. Figures cover name, description and input schema.
The two models in column one share the o200k_base encoding, so they get one count. The spread is formatting, about 38%. Reasoning tokens are output, spent per request. The tool list is input, charged once at connection.
The Claude figures are measured rather than encoded. Anthropic publishes no local tokenizer. So the definitions were sent to the API's count_tokens endpoint, and a no-tools baseline was subtracted. The range covers two tokenizer generations rather than two serializations. Haiku 4.5 and Opus 4.6 sit at the low end. Opus 5 and Sonnet 5 sit at the high end. The gap between them is about a third.
Can Helicone watch your own AI agents?
Helicone records model traffic, so the question is how much of that record two tools can reach. Counted from the server's own tools/list response on 21 August 2026.
| Signal | Covered | Notes |
|---|---|---|
| Trace and session tracking | Partial | query_sessions groups requests into sessions. There is no span or trace tree |
| Eval scores on recorded traffic | No | No evaluation tool exists on this server |
| Prompt version tracking | No | No prompt tool exists on this server |
| Offline experiments | No | No dataset or experiment tool exists on this server |
| Token and cost tracking | Partial | Whatever the request record carries comes back through query_requests. There is no dedicated cost or token tool |
Helicone MCP server limits: where answers come back incomplete
The limits below follow from a two-tool design rather than from anything failing.
The agent says: “This connector is small, so it must be cheap.” Its two tools cost about 4,919 tokens.
Tool count is a poor proxy for context cost. Helicone's schemas average 10,074 characters per tool, because the filter grammar is written out in full: every column against every operator, nested inside the schema an agent receives at connection.
For comparison, OpenSearch registers nine tools for about 1,388 tokens, and Playwright twenty-four for about 3,402.
Guard: Judge a connector by measuring it rather than by counting its tools. Connect Helicone when you will use it, not as a default.
The agent says: “Here are the requests, with their contents.” It pulled full prompts and responses into the conversation.
query_requests accepts includeBodies. With it set, the response carries the prompt and completion text of every matching call, which is your users' input and your model's output.
That is both a privacy surface and a context cost: a handful of long completions can outweigh the entire tool list.
Guard: Leave includeBodies off by default, and turn it on only for a narrow filter you have already scoped.
The agent says: “There are no sessions for that period.” Sessions were never set.
query_sessions reads groupings that exist only when your integration sends a session identifier with each call. An application that never sets one produces a real, empty answer, and nothing in the response explains why it is empty.
Guard: Confirm your Helicone integration sets session identifiers before treating an empty result as evidence.
How to configure Helicone MCP for agents
- 1
Connect it for a purpose, not permanently
Two tools cost about 4,919 tokens, so the cost is disproportionate to the surface unless LLM spend is the question of the session.
- 2
Leave
includeBodiesoff by defaultIt returns full prompt and completion text, which is both your users' data and a large context cost.
- 3
Expect to filter by time explicitly
The filter grammar is expressive and has no implied default window, so an unbounded query can be expensive on both ends.
- 4
Treat it as lightly maintained
Version 0.1.6 was published on 4 November 2025 with nothing since.
Paste this into your agent’s instructions
Helicone answers exactly what the filter asked for, so the risk is an agent reporting a total from a narrow filter. The block makes the filter visible in the answer.
When you answer using Helicone MCP tools, state: - The exact filter and time range you queried. - How many records you retrieved against the limit you set. A full page is not evidence there are no more. - Whether you requested bodies. Prompt and completion text is sensitive and should not be repeated without reason. Never state that data does not exist. State that none was returned under the constraints above. Write your answer in ASD-STE100 Simplified Technical English. Use short sentences with one idea in each.
Do you need the MCP server at all?
Often, yes. Helicone's REST API covers the same request and session queries with the same API key, and a coding agent can call it directly.
The connector's advantage is that an agent can discover the filter grammar from the schema rather than being told it. The schema that makes discovery possible is the schema that costs 10,074 characters. The benefit and the cost have one cause.
With two tools and a large schema, this is a connector to attach when LLM spend is the question of the session rather than one to leave permanently connected.
Connect it for a cost investigation. Call the REST API directly when the query is fixed and you want the context back.
Helicone MCP server setup
The package runs with npx and needs a Helicone API key in HELICONE_API_KEY. There is nothing else to configure.
Claude Code
Two tools, one key, no other configuration.
claude mcp add-json "helicone" '{"command":"npx",
"args":["-y","@helicone/mcp"],
"env":{"HELICONE_API_KEY":"<your-key>"}}'Cursor
In ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one.
{"mcpServers":{"helicone":{"command":"npx",
"args":["-y","@helicone/mcp"],
"env":{"HELICONE_API_KEY":"<your-key>"}}}}Codex CLI
Codex reads TOML, so the JSON blocks above will not transfer.
[mcp_servers.helicone]
command = "npx"
args = ["-y", "@helicone/mcp"]
env = { HELICONE_API_KEY = "<your-key>" }Every other client
Each block below is the configuration for one client, with the file path and the key that client expects.
Claude Desktop
macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.
Quit and restart fully for changes to load. Paths in args must be absolute. Logs at ~/Library/Logs/Claude/mcp.log.
{"mcpServers":{"helicone":{"command":"npx",
"args":["-y","@helicone/mcp"],
"env":{"HELICONE_API_KEY":"<your-key>"}}}}Gemini CLI
~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.
{"mcpServers":{"helicone":{"command":"npx",
"args":["-y","@helicone/mcp"],
"env":{"HELICONE_API_KEY":"<your-key>"}}}}VS Code Copilot
.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.
{"servers":{"helicone":{"command":"npx",
"args":["-y","@helicone/mcp"],
"env":{"HELICONE_API_KEY":"<your-key>"}}}}The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.
Windsurf
~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, the same JSON shape as Cursor, carrying the same API key.
Zed
~/.config/zed/settings.json, carrying the same API key as the blocks above.
The key is `context_servers`. Zed does not call them MCP servers in config, so searching its settings for mcp finds nothing.
Google Antigravity
~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay in the editor. Supports stdio, streamable HTTP, SSE and websocket.
{"mcpServers":{"helicone":{"command":"npx",
"args":["-y","@helicone/mcp"],
"env":{"HELICONE_API_KEY":"<your-key>"}}}}Amp (Sourcegraph)
~/.config/amp/settings.json or .amp/settings.json, carrying the same API key. The amp mcp CLI covers approve, doctor and oauth.
The key is `amp.mcpServers`, namespaced. A bare mcpServers block is ignored.
Cline
~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, standard JSON shape, carrying the same API key. Supports stdio, streamable HTTP and SSE.
Goose (Block)
~/.config/goose/config.yaml, carrying the same API key.
YAML, and servers are called `extensions`. Goose does not use the MCP vocabulary in config at all. Add one interactively with goose configure, or per session with goose session --with-extension.
Kiro (AWS)
.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers, standard JSON shape, carrying the same API key.
Warp
~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, standard shape, carrying the same API key. Also addable through the /agent-add-mcp skill.
JetBrains Junie
.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same API key. Use /mcp in the CLI to manage.
Roo Code
.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same API key.
Continue
.continue/mcpServers/*.yaml, one file per server, carrying the same API key.
YAML, and `mcpServers` is a list, not an object. Every JSON client keys servers by name. Continue takes an array, so a converted config will not parse.
Trae
.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same API key.
Devin
Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same API key.
Read-only access, permissions and security
Both tools read
There is nothing here that writes, which makes this one of the few connectors that is read-only by construction.
includeBodiesexposes prompt and completion textThat is your users' input and your model's output, pulled into the agent's conversation and into whatever logs that conversation touches.
The key carries your Helicone access
It reaches the traffic your organization proxies, so scope it as you would any observability credential.
Lightly maintained
No release since 4 November 2025, so plan on the current behavior rather than on fixes.
Troubleshooting
- No sessions found
query_sessionsreads groupings that exist only when your integration sets a session identifier. Without one there is nothing to group.- Two tools cost more context than expected
- It is. The input schemas average 10,074 characters because the filter grammar is expanded inline. Connect it for a cost investigation rather than leaving it attached.
- 401 on connect
HELICONE_API_KEYis missing or belongs to another organization.- The agent pulled full prompts into the chat
includeBodieswas set onquery_requests. Leave it off unless the filter is already narrow and you need the text.
Helicone MCP server: Reference
| Item | Value |
|---|---|
| Status | npm 0.1.6 published 4 November 2025 · no release since |
| Package | @helicone/mcp on npm |
| Auth | HELICONE_API_KEY |
| Tools | 2, both on by default, both read-only |
| Schema size | 10,074 characters per tool on average, the largest measured here |
| Read-only | By construction. Neither tool writes |
What engineers report
Helicone's MCP server has a small public footprint, so this section reports counts rather than quotes.
| What was checked | What it shows |
|---|---|
| npm package | @helicone/mcp 0.1.6 |
| Last published | 4 November 2025 |
| Tools | 2, both on by default |
| Average schema size | 10,074 characters per tool, the largest measured here |
| Average description length | 110 characters per tool |
Package facts from the npm registry, retrieved 21 August 2026. Tool counts, description lengths and schema sizes come from the server's own tools/list response.
Should you connect an agent to Helicone?
Yes, though it is no longer actively maintained. Best for short, deliberate cost investigations rather than a permanently connected server.
- Strongest fit
- Teams already proxying LLM traffic through Helicone who want an agent answering cost and latency questions in the editor.
- Main advantage
- A precise filter grammar over your own model traffic, discoverable by the agent without documentation.
- Main weakness
- Two tools cost about 4,919 tokens, and the surface reads only requests and sessions.
- Operational risk
includeBodiespulls full prompt and response text into the conversation.
From Oodle
One platform for agent traces and infrastructure
Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.
See agent observabilityFrequently asked questions
How many tools does the Helicone MCP server have?
Two: query_requests and query_sessions. Counted from the server's own tools/list response on the published npm package, 21 August 2026.
Why do two tools cost so much context?
The input schemas average 10,074 characters per tool, the largest in this guide. The filter grammar enumerates every column against every operator inline, and the model receives all of it at connection.
Is the server maintained?
Lightly. Version 0.1.6 was published on 4 November 2025 with no release since, and the package is still at 0.1.x.
Can an agent see my prompts and responses?
Yes, if includeBodies is set on query_requests. That returns full prompt and completion text, which is both a privacy surface and a large context cost.
Does it evaluate output quality?
No. Helicone records calls, their cost and their latency. Scoring output is an evaluation tool's job.