don-aie-cohort8/langsmith-mcp-server
If you are the rightful owner of langsmith-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
LangSmith MCP Server is a FastMCP-based server that provides read-only access to LangSmith tools for querying existing traces without additional instrumentation.
LangSmith MCP Server
FastMCP-based MCP server exposing LangSmith read-only tools for querying existing traces (runs, children, URLs) without extra instrumentation.
Tools
ls_list_runs(project_name, is_root=True, limit=50, select?)
ā List recent runs with filteringls_read_run(run_id, hydrate_children=False, child_limit=100)
ā Read single run with optional childrenls_get_run_url(run_id)
ā Generate shareable LangSmith URLsls_list_children(parent_run_id, limit=100)
ā List child spans for parent run
Requirements
- Python 3.10+
LANGSMITH_API_KEY
in your environment- Optional:
LANGSMITH_ENDPOINT
for on-prem deployments
Quick Start
# Clone and setup
git clone <repo-url>
cd langsmith-mcp-server
# Install dependencies (uv manages environment automatically)
uv sync
export LANGSMITH_API_KEY="lsv2_pt_..."
# Run smoke test
uv run python tests/smoke_test.py
# Run unit tests
uv run pytest tests/test_server.py -v
Run as MCP Server
Local Development
Recommended (using fastmcp.json
for configuration):
# FastMCP auto-detects fastmcp.json in current directory
fastmcp run
# Or via uv
uv run fastmcp run fastmcp.json
Alternative (direct Python):
uv run python src/server.py
FastMCP Cloud Deployment
Deploy to FastMCP Cloud for free hosting:
- Push to GitHub:
don-aie-cohort8/langsmith-mcp-server
- Sign in to https://fastmcp.cloud
- Create new project:
- Repository:
don-aie-cohort8/langsmith-mcp-server
- Branch:
main
- Entrypoint:
src/server.py:app
- Repository:
- Add environment variable:
LANGSMITH_API_KEY
- Deploy!
Auto-deploys on every push to main.
MCP Client Configuration
Local Development
Add to your MCP client config (Claude Desktop, Claude Code, etc.):
{
"mcpServers": {
"langsmith-local": {
"command": "uv",
"args": [
"run",
"--with", "fastmcp",
"fastmcp",
"run",
"/absolute/path/to/langsmith-mcp-server/src/server.py:app"
]
}
}
}
Note: Replace /absolute/path/to/langsmith-mcp-server
with your actual project path.
Why this pattern?
- Uses
uv run --with fastmcp
per official FastMCP recommendations - Creates isolated environment with clean dependency management
- Avoids dependency on global
fastmcp
installation - Runtime dependencies pulled from
pyproject.toml
via editable install - No need to list all dependencies in MCP config
FastMCP Cloud
For cloud deployment:
{
"mcpServers": {
"langsmith-cloud": {
"url": "https://langsmith-mcp-server.fastmcp.app/mcp"
}
}
}
Project Structure
Following FastMCP and Python best practices:
langsmith-mcp-server/
āāā src/
ā āāā server.py # MCP server implementation (~190 lines)
āāā tests/
ā āāā smoke_test.py # Startup validation
ā āāā test_server.py # Unit tests
ā āāā test_integration.py # Integration tests
ā āāā README.md # Testing documentation
āāā scripts/
ā āāā integration_demo.py # Demo script for testing tools
ā āāā claude-agent-sdk-testing/ # Claude Agent SDK integration
āāā docs/
ā āāā PRODUCTION_READINESS.md # Production deployment guide
ā āāā MCP_FIX_REPORT.md # Historical fix documentation
ā āāā SERIALIZATION_FIX.md # Pydantic compatibility fixes
ā āāā TESTING_REPORT.md # Testing results
āāā notebooks/ # Jupyter notebooks for exploration
āāā fastmcp.json # Deployment configuration
āāā pyproject.toml # Package metadata and dependencies
āāā README.md # This file
Dependency Management
This project uses a dual-file approach for dependencies:
- pyproject.toml: Defines all Python dependencies (runtime + dev)
- fastmcp.json: Deployment configuration that references pyproject.toml via
"editable": ["."]
When you run uv sync
, dependencies are installed from pyproject.toml. FastMCP automatically loads them via the editable install.
Usage Tips
- Use
select=["id","name","error","extra"]
for minimal payloads - LangGraph auto-instrumented config appears under
run.extra
(e.g.,graph_id
,thread_id
,research_model
) - All tools are read-only by design (no create/update/delete operations)
References
Client:
Server: