LangSmith MCP server: 15 tools, now archived
LangSmith exposes data about your own agents, and its repository is archived, so the package will not change.
Last verified 1 September 2026 · from LangChain's repository, PyPI 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
LangSmith publishes an official MCP server with 15 tools covering traces, prompts, datasets, experiments and billing usage.
Its repository is archived, which makes it read-only on GitHub: no issues, no pull requests, no further commits. The package remains installable at 0.1.1 and works.
The archive is recent. A census of this vendor on 13 August 2026 recorded the repository as open with commits through that week, and it was archived within days of that.
What is the LangSmith MCP server?
It is LangChain's server for the Model Context Protocol. LangSmith records what your own LLM applications did, so the agent gains tools for reading those runs back.
The surface splits into five areas: prompts, traces and runs, datasets and examples, experiments, and billing usage. That last one is unusual among agent-observability connectors, which mostly stop at telemetry.
It runs locally and authenticates with a LangSmith API key. There is no hosted endpoint here; the hosted product is LangSmith itself, and this is a client for it.
LangSmith covers agent observability broadly, reaches part of the way into release through prompt management and into cost through billing usage, and reaches nothing in code review or production observability.
| Part of the work | What LangSmith has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | None | No code-review product |
| CI & release | Prompt management | Partial. There is no CI product. Prompt management is the nearest release surface, and push_prompt returns instructions rather than pushing a version |
| Production observability | None | No infrastructure telemetry. LangSmith sees your application's LLM calls, not its hosts |
| Agent observability & evals | Runs, threads, projects, datasets, experiments | Yes. Core strength, and the product's whole purpose |
| AI cost management | Billing usage | Partial. get_billing_usage reports LangSmith consumption, which is trace volume rather than model spend |
For an agent, LangSmith answers questions about how your LLM application behaved and what you fed it, and nothing about the machines underneath. An agent connected here can pull the runs behind a bad answer and the dataset a prompt was tested against. It cannot tell you the database was slow, so this connector pairs with an infrastructure one.
What can an AI agent do with LangSmith?
| Task | Tools | Works | Watch out for |
|---|---|---|---|
| Read the runs behind a bad answer | fetch_runs get_thread_history | Yes | Threads need a thread identifier set by your application |
| Find which prompt version is live | list_prompts get_prompt_by_name | Yes | Prompts are LangSmith's own store, not your repository |
| Ship a prompt change | push_prompt | No | push_prompt returns SDK examples for pushing a version. It does not push one |
| Build a dataset from real traffic | create_dataset list_examples update_examples | Yes | Dataset writes are registered alongside the reads, with no flag to drop them |
| Run and read an experiment | run_experiment list_experiments | Yes | run_experiment returns SDK documentation rather than running anything, so you still have to run the experiment yourself |
| Check what LangSmith is costing | get_billing_usage | Yes | LangSmith consumption, not the token spend of your models |
| Investigate a production incident | No | No metrics, logs or traces from your infrastructure |
15 tools registered, all on by default
- Prompts2
list_promptsget_prompt_by_name- Prompts, documentation-only1
push_prompt- Traces and runs3
fetch_runsget_thread_historylist_projects- Datasets4
list_datasetsread_datasetlist_examplesread_example- Datasets, documentation-only2
create_datasetupdate_examples- Experiments1
list_experiments- Experiments, documentation-only1
run_experiment- Billing1
get_billing_usage
Counted from the server's own tools/list response on 21 August 2026, which agrees exactly with the README's table. There is no read-only mode, so the write groups are gated only by your client.
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.
LangSmith is verbose for its size: 15 tools cost about 5,458 tokens. Arize Phoenix registers 27 tools and costs less. LangSmith's tool descriptions average 1,120 characters. 1,120 characters is long for a tool description.
| 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 | 15 | 5,458 to 6,665 | 5,429 to 6,690 | 7,498 to 9,529 | 2.7% to 4.8% |
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 langsmith-mcp-server 0.1.1. It was run locally with a placeholder key.
Registration is static, so no LangSmith 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 22%. 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 quarter.
Can LangSmith watch your own AI agents?
LangSmith is built for tracing agents, so this table asks which of those signals the connector exposes. Counted from the server's own tools/list response on 21 August 2026.
| Signal | Covered | Notes |
|---|---|---|
| Trace and run tracking | Yes | fetch_runs reaches runs and get_thread_history reaches conversation threads |
| Eval scores on recorded traffic | Partial | run_experiment starts an evaluation. No tool reads scores back on their own |
| Prompt version tracking | Partial | list_prompts, get_prompt_by_name and push_prompt cover prompts. There is no version or tag tool |
| Offline experiments | Yes | create_dataset, read_dataset, list_experiments and run_experiment |
| Token and cost tracking | Partial | get_billing_usage is account-level usage rather than per session or per trace |
LangSmith MCP server limits: where answers come back incomplete
The first limit below is about the repository rather than the connector, which still works exactly as documented.
The agent says: “LangSmith is connected.” It is, and the repository is archived.
An archived GitHub repository is read-only: no new commits, no issues, no pull requests. The published package is unaffected and still installs at 0.1.1, so nothing in the agent's behavior changes.
The timing is worth stating precisely. Research on 13 August 2026 recorded this repository as open, with commits through that week. It was archived within the following days, and the package has not moved past 0.1.1.
Guard: Treat it as frozen rather than broken. Pin the version, and do not plan work that depends on a fix landing.
The agent says: “That conversation has no history.” No thread identifier was ever set.
get_thread_history reads runs grouped by a thread identifier your application supplies. An application that never sets one produces a real, empty answer, and the response does not distinguish that from a conversation with no turns.
Guard: Confirm your LangSmith integration sets thread identifiers before treating an empty history as evidence.
The agent says: “I updated the prompt.” It returned SDK examples and changed nothing.
LangSmith ships no write tool and therefore needs no read-only mode. push_prompt, create_dataset and update_examples are documentation-only: each returns SDK examples and changes nothing.
Guard: Allowlist read tools only. In Claude Code, run /permissions and leave the write tools unapproved.
How to configure LangSmith MCP for agents
- 1
Pin the version
The repository is archived and the package sits at 0.1.1, so what it exposes is what it will expose. Pinning avoids a surprise if the package is ever yanked.
- 2
No allowlist is needed for safety
Every tool reads. The four documentation-only tools are worth disabling for context rather than for risk: they return long markdown pages an agent rarely needs.
- 3
Set the workspace
LANGSMITH_WORKSPACE_IDscopes what the agent sees; without it a multi-workspace account can return results from the wrong place. - 4
Point at the right host
LANGSMITH_ENDPOINTis needed for self-hosted or non-default LangSmith instances.
Paste this into your agent’s instructions
LangSmith's quiet failure is scope: a run search in the wrong project, or a thread with no identifier, both return nothing. The block makes the agent name what it searched.
When you answer using LangSmith MCP tools, state: - The project and workspace you searched. - The time range, and how many runs you actually retrieved. - Whether a thread identifier existed. get_thread_history returns nothing when the application never set one, which is not the same as a conversation with no turns. 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?
Yes, and it is worth considering given the archive. LangSmith's REST API covers runs, prompts and datasets with the same API key, and is documented independently of this package.
The connector's advantage is tool descriptions detailed enough that an agent picks the right call unprompted, which is the same verbosity that makes it cost 5,458 tokens.
For a frozen package, the API is the surface that will keep changing with the product. The connector will not.
Connect the server for exploratory work on recent runs. Use the REST API where you need something the frozen package does not expose.
LangSmith MCP server setup
The package runs with uvx or pip and needs a LangSmith API key in LANGSMITH_API_KEY.
Add LANGSMITH_WORKSPACE_ID for a multi-workspace account, and LANGSMITH_ENDPOINT for self-hosted instances.
Claude Code
uvx fetches and runs the package without installing it globally.
claude mcp add-json "langsmith" '{"command":"uvx",
"args":["langsmith-mcp-server"],
"env":{"LANGSMITH_API_KEY":"<your-key>"}}'Cursor
In ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one.
{"mcpServers":{"langsmith":{"command":"uvx",
"args":["langsmith-mcp-server"],
"env":{"LANGSMITH_API_KEY":"<your-key>"}}}}Codex CLI
Codex reads TOML, so the JSON blocks above will not transfer.
[mcp_servers.langsmith]
command = "uvx"
args = ["langsmith-mcp-server"]
env = { LANGSMITH_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":{"langsmith":{"command":"uvx",
"args":["langsmith-mcp-server"],
"env":{"LANGSMITH_API_KEY":"<your-key>"}}}}Gemini CLI
~/.gemini/settings.json globally, or .gemini/settings.json per project. Key mcpServers. CLI: gemini mcp add.
{"mcpServers":{"langsmith":{"command":"uvx",
"args":["langsmith-mcp-server"],
"env":{"LANGSMITH_API_KEY":"<your-key>"}}}}VS Code Copilot
.vscode/mcp.json per workspace, or your user profile. CLI: code --add-mcp.
{"servers":{"langsmith":{"command":"uvx",
"args":["langsmith-mcp-server"],
"env":{"LANGSMITH_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":{"langsmith":{"command":"uvx",
"args":["langsmith-mcp-server"],
"env":{"LANGSMITH_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.
Self-hosted LangSmith
Point at your own instance with LANGSMITH_ENDPOINT alongside the key.
LANGSMITH_API_KEY=<your-key> \ LANGSMITH_ENDPOINT=https://langsmith.example.com \ uvx langsmith-mcp-server
Read-only access, permissions and security
No tool writes
Four of the fifteen are named like writes, but
push_prompt,create_dataset,update_examplesandrun_experimentare labeledDocumentation-onlyin the README and implemented as zero-argument functions that return a markdown page of SDK examples. They take no parameters and reach nothing.The naming is the hazard, not the behavior
An operator reading the tool list reasonably assumes
push_promptpushes a prompt. It returns instructions for pushing one. Budget for the confusion, not for the write.Nothing here spends money
run_experimentreturns documentation, so an agent calling it repeatedly costs context and nothing else.The archive does not remove the key's reach
An archived repository is still an installed package holding an API key with your workspace's permissions.
Troubleshooting
- No runs found in a project you know has traffic
- Check the project name and the workspace.
LANGSMITH_WORKSPACE_IDscopes results, and a query against the wrong workspace returns an empty result with no explanation. - A conversation has no thread history
get_thread_historyneeds a thread identifier that your application sets. Without one there is nothing to group, and the response looks the same as an empty conversation.- 401 on connect
LANGSMITH_API_KEYis missing or belongs to another workspace. For a self-hosted instance, setLANGSMITH_ENDPOINTas well.- You want a fix that is not in 0.1.1
- The repository is archived, so no further releases are expected. The LangSmith REST API is the surface that will keep changing with the product.
LangSmith MCP server: Reference
| Item | Value |
|---|---|
| Status | Repository archived · PyPI 0.1.1 across 11 releases |
| Adoption | 131 stars · MIT license |
| Package | langsmith-mcp-server on PyPI, run with uvx or pip |
| Auth | LANGSMITH_API_KEY, with LANGSMITH_WORKSPACE_ID for multi-workspace accounts |
| Tools | 15, all on by default. The 4 named like writes return documentation |
| Read-only | Not needed. Nothing writes, so there is nothing to gate |
What engineers report
LangSmith is widely used for agent observability. The connector's repository carries 131 stars and 11 releases on PyPI, and it was archived on 14 August 2026. The signals below are repository state and package cadence rather than opinions.
| What was checked | What it shows |
|---|---|
| Stars | 131 |
| Repository state | Archived, therefore read-only |
| PyPI latest | 0.1.1, across 11 releases |
| License | MIT |
| Tools | 15, matching the README exactly |
“exceeds maximum allowed tokens (25000). Please use pagination, filtering, or limit parameters to reduce the response size.”
Repository facts from the GitHub API and package facts from PyPI, both retrieved 21 August 2026. Tool counts come from the server's own tools/list response, which agrees with the README's table.
Should you connect an agent to LangSmith?
Yes, though it is no longer actively maintained. Best for LangSmith teams who pin the version, allowlist read tools, and keep the REST API in reserve.
- Strongest fit
- Teams already on LangSmith who want an agent reading runs, prompts and experiments without leaving the editor.
- Main advantage
- Reach across the whole LangSmith model, including billing usage, which most agent-observability connectors omit.
- Main weakness
- The repository is archived and the package sits at 0.1.1, so what it exposes is what it will continue to expose.
- Operational risk
- There are no writes to gate. The four tools that read as writes return documentation, so the connector is read-only in practice even though nothing advertises it as such.
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 LangSmith MCP server have?
15, all enabled on connection, covering prompts, traces, datasets, experiments and billing usage. Counted from the server's own tools/list response, 21 August 2026.
Is the LangSmith MCP server abandoned?
The repository is archived, which makes it read-only on GitHub. The package still installs at 0.1.1 and works. Research on 13 August 2026 recorded the repository as open, so the archive is recent.
Does the archive affect the LangSmith product?
No. The archive is of this connector's repository. LangSmith itself is a hosted product with its own REST API.
Can an agent change my prompts?
No. push_prompt, create_dataset and update_examples are labeled Documentation-only in the README and defined as zero-argument functions returning markdown, so they cannot change anything. There is no read-only mode because there is nothing to switch off.
Does get_billing_usage show my model spend?
No. It reports LangSmith consumption, which is trace volume. Model token spend is a different measurement.