--- title: Connecting Letta to Local MCP Servers subtitle: Using stdio transport for local development slug: guides/mcp/local --- stdio is self-hosted only. Letta Cloud does not support stdio. stdio transport launches MCP servers as local subprocesses, ideal for development and testing. Local (stdio) MCP servers can be useful for local development, testing, and situations where the MCP server you want to use is only available via stdio. ## Setup **ADE**: Tool Manager → Add MCP Server → stdio → specify command and args ```python title="python" maxLines=50 from letta_client import Letta from letta_client.types import StdioServerConfig # Self-hosted only client = Letta(base_url="http://localhost:8283") # Connect a stdio server (npx example - works in Docker!) stdio_config = StdioServerConfig( server_name="github-server", command="npx", args=["-y", "@modelcontextprotocol/server-github"], env={"GITHUB_PERSONAL_ACCESS_TOKEN": "your-token"} ) client.tools.add_mcp_server(request=stdio_config) # List available tools tools = client.tools.list_mcp_tools_by_server( mcp_server_name="github-server" ) # Add a tool to use with agents tool = client.tools.add_mcp_tool( mcp_server_name="github-server", mcp_tool_name="create_repository" ) ``` ```typescript title="node.js" maxLines=50 import { LettaClient } from '@letta-ai/letta-client' // Self-hosted only const client = new LettaClient({ baseUrl: "http://localhost:8283" }); // Connect a stdio server (npx example - works in Docker!) const stdioConfig = { server_name: "github-server", command: "npx", args: ["-y", "@modelcontextprotocol/server-github"], env: {"GITHUB_PERSONAL_ACCESS_TOKEN": "your-token"} }; await client.tools.addMcpServer(stdioConfig); // List available tools const tools = await client.tools.listMcpToolsByServer("github-server"); // Add a tool to use with agents const tool = await client.tools.addMcpTool("github-server", "create_repository"); ``` ## Docker Support Letta's Docker image includes `npx`, so npm-based MCP servers work out of the box. Custom Python scripts or missing dependencies require workarounds. - **Works in Docker**: `npx` servers from the [official MCP repository](https://github.com/modelcontextprotocol/servers) - **Challenging**: Custom scripts, local file paths, missing system dependencies - **Alternatives**: Use [remote servers](/guides/mcp/sse) or [mcp-proxy](https://github.com/sparfenyuk/mcp-proxy) ## Troubleshooting - **Server won't start**: Check command path, dependencies, environment variables - **Connection fails**: Review Letta logs, test command manually - **Tools missing**: Verify MCP protocol implementation and tool registration