Connect LangChain to Claude: Run Sandboxes and Prompt Hubs
Discover how to connect LangChain and LangSmith to Claude Desktop using Truto's managed MCP server. Automate dataset generation, LLM evaluations, and sandboxes.
If you need to connect LangChain and LangSmith to Claude to automate prompt hub optimization, execute untrusted code in sandboxes, or build dynamic dataset generators, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's tool calls and the LangChain API ecosystem. You can either build and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.
If your team uses ChatGPT, check out our guide on /connect-langchain-to-chatgpt-monitor-traces-and-manage-datasets/ or explore our broader architectural overview on /connect-langchain-to-ai-agents-track-performance-and-feedback/.
Giving a Large Language Model (LLM) read and write access to a complex AI orchestration platform like LangSmith is a significant engineering challenge. You have to handle API token lifecycles, map massive JSON schemas to MCP tool definitions, and deal with LangSmith's trace data structures. Every time LangSmith deprecates a V1 resource in favor of a V2 endpoint, you have to update your server code, redeploy, and test the integration.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for LangChain, connect it natively to Claude Desktop, and execute complex evaluation and sandbox workflows using natural language.
The Engineering Reality of the LangChain API
A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against LangChain and LangSmith's APIs is painful. You are not just integrating a simple CRUD app - you are interacting with tracing backends, streaming sandbox outputs, and complex evaluation pipelines.
If you decide to build a custom MCP server for LangChain, you own the entire API lifecycle. Here are the specific challenges you will face:
Fragmented API Versions and Endpoint Deprecation
LangSmith has been migrating its legacy V1 endpoints to its newer V2 architecture. As a result, you will find overlapping endpoints scattered across the API. For example, lang_chain_runs_get_public exists alongside lang_chain_runs_get_public_v_2, and older feedback formula endpoints have been superseded by composite-feedback endpoints. An LLM has no context on which API version to use. You must build an abstraction layer that explicitly defines the correct schema for Claude, hiding the underlying endpoint fragmentation.
Streaming Sandbox Execution and Base64 Payloads
LangChain provides sandboxes for executing code securely. However, the API for interacting with these sandboxes is complex. Endpoints like stream_start initiate Server-Sent Events (SSE) streams containing stdout and stderr as Base64 payloads. An LLM cannot natively establish a WebSocket tunnel or consume raw SSE streams without a translation layer interpreting and formatting the output into a static JSON-RPC response that the model can process.
Factual Note on Rate Limits and Backoff
LangSmith enforces strict rate limits on high-volume trace ingestion and querying endpoints. It is important to note that Truto does not retry, throttle, or apply backoff on rate limit errors. When the LangChain upstream API returns an HTTP 429, Truto passes that error directly to the caller. Truto normalizes upstream rate limit info into standardized headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF spec. The caller (or the orchestrating agent framework) is responsible for implementing retry and exponential backoff logic.
Creating the MCP Server for LangChain
Truto derives MCP tools dynamically from the integration's resource definitions and documentation records. A tool only appears in the MCP server if it has a corresponding documentation entry, acting as a curation mechanism to ensure only well-documented endpoints are exposed to Claude.
You can generate your LangChain MCP server using two methods: via the Truto UI or programmatically via the API.
Method 1: Via the Truto UI
For teams who want a zero-code setup experience:
- Navigate to the Integrated Accounts page in your Truto dashboard and select your LangChain connection.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration. You can apply method filters (e.g., restrict to
readoperations) or tag filters (e.g., restrict tosandboxes). - Copy the generated MCP server URL. This URL contains a cryptographic token that securely identifies your tenant and connection.
Method 2: Via the Truto API
For platform engineers embedding this capability into an internal portal, you can generate the server programmatically. The API validates the configuration, stores a hashed token in distributed storage, and returns the endpoint.
Request:
curl -X POST https://api.truto.one/integrated-account/{account_id}/mcp \
-H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "LangChain Evaluation Agent",
"config": {
"methods": ["read", "write", "custom"]
}
}'Response:
{
"id": "mcp_abc123",
"name": "LangChain Evaluation Agent",
"config": {
"methods": ["read", "write", "custom"]
},
"expires_at": null,
"url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}Connecting the MCP Server to Claude
Once you have the Truto MCP Server URL, connecting it to Claude requires zero additional code. You simply point the client at the JSON-RPC endpoint.
Method A: Via the Claude UI (Web/Desktop)
If you are using Claude's native UI integrations:
- In Claude, navigate to Settings -> Integrations -> Add MCP Server.
- Paste the Truto MCP URL (e.g.,
https://api.truto.one/mcp/a1b2c3d4e5f6...). - Click Add.
Claude will immediately initiate an MCP handshake, requesting the available tools dynamically generated from your LangChain integration.
Method B: Via Manual Configuration File
For Claude Desktop power users and custom agent frameworks, you can configure the server manually using the claude_desktop_config.json file. Because Truto MCP servers operate over standard HTTP, you use the official SSE transport package.
Edit your configuration file (located at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"langchain_truto": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sse",
"https://api.truto.one/mcp/a1b2c3d4e5f6..."
]
}
}
}Restart Claude Desktop. The "Tools" icon will appear, indicating that Claude has successfully ingested the LangChain endpoints.
High-Leverage LangChain Hero Tools
Exposing the entire LangChain API to an LLM can overwhelm its context window. Truto filters the available tools based on human-curated documentation. Here are the highest-leverage tools your agent can use to orchestrate LangChain environments.
Create a Sandbox Box
create_a_lang_chain_sandboxes_box
This tool allows the agent to provision a secure, isolated sandbox from a snapshot. It requires memory allocations and capacity parameters. This is essential for building agents that need to compile or execute untrusted code as part of a LangChain RAG pipeline.
"Claude, spin up a new LangChain sandbox with 512MB memory and 1GB FS capacity. Once it's running, return the sandbox ID so we can execute our Python evaluation scripts inside it."
Execute Command in Sandbox
lang_chain_sandboxes_execute
Once a sandbox is running, this tool allows Claude to run arbitrary commands inside the isolated environment. It returns stdout, stderr, and the exit_code. This is how you build self-correcting code generation workflows.
"Take the sandbox ID from the previous step and execute the file
evaluator.pyusing this tool. If the exit code is not 0, analyze the stderr output and tell me what failed."
Create a Platform Evaluator
create_a_lang_chain_platform_evaluator
Creates a new LLM or code evaluator in LangSmith for your workspace. This tool accepts the evaluator name, type, and specific evaluation configurations. Agents use this to dynamically spin up grading mechanisms for traces.
"Create a new LangSmith LLM evaluator named 'Toxicity-Guard' that flags responses containing profanity. Set the feedback key to 'toxicity_score'."
List Optimization Jobs
list_all_lang_chain_optimization_jobs
This tool returns all prompt optimization jobs running in a specific LangSmith repository. It allows Claude to audit ongoing fine-tuning processes and extract their completion status and timestamps.
"Query the prompt optimization jobs for the repo 'customer-support-agent'. List all jobs that have been updated in the last 24 hours and summarize their statuses."
Generate Synthetic Dataset Examples
create_a_lang_chain_dataset_generate
Generates synthetic examples for a specific LangSmith dataset. The agent can specify the dataset ID and the number of examples required. This is incredibly powerful for autonomously expanding test coverage.
"Look up the dataset ID for 'financial-classification' and use the generate tool to create 50 new synthetic examples to expand our test coverage for the upcoming prompt update."
Queue a Run
create_a_lang_chain_run
Allows the agent to manually queue a run (trace) for ingestion into LangSmith. This requires a complex nested JSON payload defining the run type, start time, inputs, and outputs.
"Manually queue a trace in LangSmith for a run named 'Claude-Desktop-Test-01'. Include the inputs '{query: user prompt}' and the outputs I generated, and tag it with 'mcp-test'."
For a complete list of all 150+ supported endpoints, including bulk exports, prompt webhooks, and fleet management tools, visit the Truto LangChain Integration Page.
Workflows in Action
Exposing individual tools is helpful, but the real power of MCP lies in how Claude can chain these tools together to solve complex architectural problems.
Scenario 1: Executing Untrusted Code in a Sandboxed Environment
Evaluating generated code locally is dangerous. You can prompt Claude to provision a LangChain sandbox, execute code, and retrieve the results safely.
"Provision a new LangChain sandbox named 'eval-env'. Once it is running, execute
python -c 'print("Hello from LangChain Sandbox")'inside it, and return the exact output."
create_a_lang_chain_sandboxes_box: Claude provisions the sandbox and captures the returnedidandstatus.list_all_lang_chain_boxe_status: Claude polls the status until the sandbox confirms it is ready.lang_chain_sandboxes_execute: Claude executes the Python command inside the sandbox.lang_chain_sandboxes_boxes_stop: Claude cleans up the environment to prevent idling costs.
sequenceDiagram
participant Claude as Claude Desktop
participant MCP as Truto MCP Server
participant LangChain as LangChain API
Claude->>MCP: Call create_a_lang_chain_sandboxes_box
MCP->>LangChain: POST /sandboxes
LangChain-->>MCP: Sandbox ID
MCP-->>Claude: Tool Result (Sandbox Ready)
Claude->>MCP: Call lang_chain_sandboxes_execute
MCP->>LangChain: POST /sandboxes/execute
LangChain-->>MCP: Execution Output
MCP-->>Claude: Tool Result (stdout: Hello from LangChain Sandbox)The Result: The user gets the execution output from a secure, remote environment without having to write a single line of local orchestration code or manage WebSockets.
Scenario 2: Dynamic Dataset Expansion
When a model starts failing edge cases, a developer can ask Claude to fetch the failing traces, create a new dataset, and populate it with synthetic data.
"Find the dataset named 'edge-cases'. Generate 20 synthetic examples for it. Once they are generated, count the total number of examples in the dataset to verify."
list_all_lang_chain_datasets: Claude searches for the dataset named 'edge-cases' and retrieves its internal UUID.create_a_lang_chain_dataset_generate: Claude invokes the generation endpoint, passing the UUID and settingnum_examplesto 20.list_all_lang_chain_examples_counts: Claude queries the dataset to return the newly updated total count.
The Result: The developer successfully augments their fine-tuning dataset using Claude's reasoning loop to manage the LangSmith API orchestration.
Security and Access Control
Giving an LLM direct access to your LangChain workspaces requires strict governance. Truto MCP servers are self-contained security perimeters that you can restrict at creation time:
- Method Filtering (
config.methods): Restrict the MCP server to only allowreadoperations. If Claude attempts to invoke acreateordeletetool (likedelete_a_lang_chain_dataset_by_id), the server rejects it before it ever hits the LangChain API. - Tag Filtering (
config.tags): Scope the server to specific functional areas. You can generate a server that only exposes tools tagged withsandboxesordatasets, keeping core billing and organizational tools hidden. - Double Authentication (
require_api_token_auth): By default, possessing the MCP URL grants access. By enabling this flag, the client must also pass a valid Truto API token in theAuthorizationheader, ensuring only authorized developers in your organization can use the tools. - Time-to-Live (
expires_at): Generate ephemeral MCP servers for contractors or temporary AI workflows. Once the timestamp passes, the token is purged from distributed storage and the URL instantly invalidates.
Stop Writing Custom API Boilerplate
Integrating LangChain and LangSmith with Claude Desktop shouldn't require maintaining a custom Node.js Express server, dealing with SSE stream parsing, or tracking API version deprecations. By utilizing a managed MCP server architecture, you delegate the schema generation and auth lifecycles to the infrastructure layer.
Claude can immediately begin orchestrating sandboxes, tracking prompt optimizations, and dynamically evaluating traces using the raw power of the LangChain API.
FAQ
- How do I manage LangChain rate limits with an MCP server?
- Truto does not automatically retry or apply backoff logic to rate limit errors. When LangChain returns a 429 status code, Truto passes the error back to the caller along with normalized IETF headers (`ratelimit-limit`, `ratelimit-remaining`, `ratelimit-reset`). The client or orchestrating agent is responsible for implementing retry logic.
- Can I restrict the LangChain tools Claude has access to?
- Yes. When generating the MCP server via Truto, you can pass configuration objects to filter tools by method (e.g., read-only) or by tags, ensuring Claude only has access to specific domains like sandboxes or datasets.
- How does Claude handle streaming output from LangChain sandboxes?
- LangChain sandboxes often return Server-Sent Events (SSE) with Base64 payloads. The MCP server translates these complex HTTP protocols into standardized JSON-RPC messages, allowing Claude to consume execution outputs seamlessly.