MCP server for Langsmith SDK integration
Project description
🦜🛠️ LangSmith MCP Server
[!WARNING] LangSmith MCP Server is under active development and many features are not yet implemented.
A production-ready Model Context Protocol (MCP) server that provides seamless integration with the LangSmith observability platform. This server enables language models to fetch conversation history and prompts from LangSmith.
📋 Overview
The LangSmith MCP Server bridges the gap between language models and the LangSmith platform, enabling advanced capabilities for conversation tracking, prompt management, and analytics integration.
🛠️ Installation Options
📝 General Prerequisites
-
Install uv (a fast Python package installer and resolver):
curl -LsSf https://astral.sh/uv/install.sh | sh
-
Clone this repository and navigate to the project directory:
git clone https://github.com/langchain-ai/langsmith-mcp-server.git cd langsmith-mcp-server
🔌 MCP Client Integration
Once you have the LangSmith MCP Server, you can integrate it with various MCP-compatible clients. You have two installation options:
📦 From PyPI
-
Install the package:
uv run pip install --upgrade langsmith-mcp-server
-
Add to your client MCP config:
{ "mcpServers": { "LangSmith API MCP Server": { "command": "/path/to/uvx", "args": [ "langsmith-mcp-server" ], "env": { "LANGSMITH_API_KEY": "your_langsmith_api_key", "LANGSMITH_WORKSPACE_ID": "your_workspace_id", "LANGSMITH_ENDPOINT": "https://api.smith.langchain.com" } } } }
⚙️ From Source
Add the following configuration to your MCP client settings:
{
"mcpServers": {
"LangSmith API MCP Server": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/langsmith-mcp-server/langsmith_mcp_server",
"run",
"server.py"
],
"env": {
"LANGSMITH_API_KEY": "your_langsmith_api_key",
"LANGSMITH_WORKSPACE_ID": "your_workspace_id",
"LANGSMITH_ENDPOINT": "https://api.smith.langchain.com"
}
}
}
}
Replace the following placeholders:
/path/to/uv: The absolute path to your uv installation (e.g.,/Users/username/.local/bin/uv). You can find it runningwhich uv./path/to/langsmith-mcp-server: The absolute path to your langsmith-mcp project directoryyour_langsmith_api_key: Your LangSmith API key (required)your_workspace_id: Your LangSmith workspace ID (optional, for API keys scoped to multiple workspaces)https://api.smith.langchain.com: The LangSmith API endpoint (optional, defaults to the standard endpoint)
Example configuration:
{
"mcpServers": {
"LangSmith API MCP Server": {
"command": "/Users/mperini/.local/bin/uvx",
"args": [
"langsmith-mcp-server"
],
"env": {
"LANGSMITH_API_KEY": "lsv2_pt_1234",
"LANGSMITH_WORKSPACE_ID": "your_workspace_id",
"LANGSMITH_ENDPOINT": "https://api.smith.langchain.com"
}
}
}
}
Copy this configuration in Cursor > MCP Settings.
🔧 Environment Variables
The LangSmith MCP Server supports the following environment variables:
| Variable | Required | Description | Example |
|---|---|---|---|
LANGSMITH_API_KEY |
✅ Yes | Your LangSmith API key for authentication | lsv2_pt_1234567890 |
LANGSMITH_WORKSPACE_ID |
❌ No | Workspace ID for API keys scoped to multiple workspaces | your_workspace_id |
LANGSMITH_ENDPOINT |
❌ No | Custom API endpoint URL (for self-hosted or EU region) | https://api.smith.langchain.com |
Notes:
- Only
LANGSMITH_API_KEYis required for basic functionality LANGSMITH_WORKSPACE_IDis useful when your API key has access to multiple workspacesLANGSMITH_ENDPOINTallows you to use custom endpoints for self-hosted LangSmith installations or the EU region
🐳 Docker Deployment (HTTP-Streamable)
The LangSmith MCP Server can be deployed as an HTTP server using Docker, enabling remote access via the HTTP-streamable protocol.
Building the Docker Image
docker build -t langsmith-mcp-server .
Running with Docker
docker run -p 8000:8000 langsmith-mcp-server
The API key is provided via the LANGSMITH-API-KEY header when connecting, so no environment variables are required for HTTP-streamable protocol.
Connecting with HTTP-Streamable Protocol
Once the Docker container is running, you can connect to it using the HTTP-streamable transport. The server accepts authentication via headers:
Required header:
LANGSMITH-API-KEY: Your LangSmith API key
Optional headers:
LANGSMITH-WORKSPACE-ID: Workspace ID for API keys scoped to multiple workspacesLANGSMITH-ENDPOINT: Custom endpoint URL (for self-hosted or EU region)
Example client configuration:
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
headers = {
"LANGSMITH-API-KEY": "lsv2_pt_your_api_key_here",
# Optional:
# "LANGSMITH-WORKSPACE-ID": "your_workspace_id",
# "LANGSMITH-ENDPOINT": "https://api.smith.langchain.com",
}
async with streamablehttp_client("http://localhost:8000/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# Use the session to call tools, list prompts, etc.
Cursor Integration
To add the LangSmith MCP Server to Cursor using HTTP-streamable protocol, add the following to your mcp.json configuration file:
{
"mcpServers": {
"HTTP-Streamable LangSmith MCP Server": {
"url": "http://localhost:8000/mcp",
"headers": {
"LANGSMITH-API-KEY": "lsv2_pt_your_api_key_here"
}
}
}
}
Optional headers:
{
"mcpServers": {
"HTTP-Streamable LangSmith MCP Server": {
"url": "http://localhost:8000/mcp",
"headers": {
"LANGSMITH-API-KEY": "lsv2_pt_your_api_key_here",
"LANGSMITH-WORKSPACE-ID": "your_workspace_id",
"LANGSMITH-ENDPOINT": "https://api.smith.langchain.com"
}
}
}
}
Make sure the server is running before connecting Cursor to it.
Health Check
The server provides a health check endpoint:
curl http://localhost:8000/health
This endpoint does not require authentication and returns "LangSmith MCP server is running" when the server is healthy.
🧪 Development and Contributing 🤝
If you want to develop or contribute to the LangSmith MCP Server, follow these steps:
-
Create a virtual environment and install dependencies:
uv sync -
To include test dependencies:
uv sync --group test
-
View available MCP commands:
uvx langsmith-mcp-server -
For development, run the MCP inspector:
uv run mcp dev langsmith_mcp_server/server.py
- This will start the MCP inspector on a network port
- Install any required libraries when prompted
- The MCP inspector will be available in your browser
- Set the
LANGSMITH_API_KEYenvironment variable in the inspector - Connect to the server
- Navigate to the "Tools" tab to see all available tools
-
Before submitting your changes, run the linting and formatting checks:
make lint make format
🚀 Example Use Cases
The server enables powerful capabilities including:
- 💬 Conversation History: "Fetch the history of my conversation with the AI assistant from thread 'thread-123' in project 'my-chatbot'"
- 📚 Prompt Management: "Get all public prompts in my workspace"
- 🔍 Smart Search: "Find private prompts containing the word 'joke'"
- 📝 Template Access: "Pull the template for the 'legal-case-summarizer' prompt"
- 🔧 Configuration: "Get the system message from a specific prompt template"
🛠️ Available Tools
The LangSmith MCP Server provides the following tools for integration with LangSmith:
| Tool Name | Description |
|---|---|
list_prompts |
Fetch prompts from LangSmith with optional filtering. Filter by visibility (public/private) and limit results. |
get_prompt_by_name |
Get a specific prompt by its exact name, returning the prompt details and template. |
get_thread_history |
Retrieve the message history for a specific conversation thread, returning messages in chronological order. |
get_project_runs_stats |
Get statistics about runs in a LangSmith project, either for the last run or overall project stats. |
fetch_trace |
Fetch trace content for debugging and analyzing LangSmith runs using project name or trace ID. |
list_datasets |
Fetch LangSmith datasets with filtering options by ID, type, name, or metadata. |
list_examples |
Fetch examples from a LangSmith dataset with advanced filtering options. |
read_dataset |
Read a specific dataset from LangSmith using dataset ID or name. |
read_example |
Read a specific example from LangSmith using the example ID and optional version information. |
📄 License
This project is distributed under the MIT License. For detailed terms and conditions, please refer to the LICENSE file.
Made with ❤️ by the LangChain Team
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langsmith_mcp_server-0.0.8.tar.gz.
File metadata
- Download URL: langsmith_mcp_server-0.0.8.tar.gz
- Upload date:
- Size: 38.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7afc486870a1e16c7142ac676b9bb0cb23c42546a6bb6e23745ab677a1379fd
|
|
| MD5 |
c052871908d24e7c99144633b6f48c8b
|
|
| BLAKE2b-256 |
ceda319df100fe03ee78a2dbd1e161331111a5c21f29a2979705e9001d7458d4
|
File details
Details for the file langsmith_mcp_server-0.0.8-py3-none-any.whl.
File metadata
- Download URL: langsmith_mcp_server-0.0.8-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c51694197d368d3ee469c32dee5ea59207c48dd4e9890386b21a19893b571373
|
|
| MD5 |
c64d5dde92c5685bd3b337b0749c2d3d
|
|
| BLAKE2b-256 |
075b19cd63ead75cca2402bae867d0dc2ee557a3176908063716277c2ed3342a
|