Connecting Letta to Local MCP Servers

Using stdio transport for local development

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

1import { LettaClient } from '@letta-ai/letta-client'
2
3// Self-hosted only
4const client = new LettaClient({
5 baseUrl: "http://localhost:8283"
6});
7
8// Connect a stdio server (npx example - works in Docker!)
9const stdioConfig = {
10 server_name: "github-server",
11 command: "npx",
12 args: ["-y", "@modelcontextprotocol/server-github"],
13 env: {"GITHUB_PERSONAL_ACCESS_TOKEN": "your-token"}
14};
15
16await client.tools.addMcpServer(stdioConfig);
17
18// List available tools
19const tools = await client.tools.listMcpToolsByServer("github-server");
20
21// Add a tool to use with agents
22const 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.

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