Skip to content

feat: support client-provided MCP servers - #29

Merged
just-cameron merged 3 commits into
mainfrom
letta/mcp-client-tools-05a6beb3
Jul 29, 2026
Merged

just-cameron merged 3 commits into
mainfrom
letta/mcp-client-tools-05a6beb3

Conversation

@letta-integration

@letta-integration letta-integration Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • forward stdio MCP servers from ACP session/new and session/load into Agent SDK sessions
  • preserve client-provided command, arguments, environment, and session cwd
  • rely on Agent SDK 0.5.6 for MCP process ownership and Letta Code external-tool bridging
  • close displaced sessions when a client reloads an already-open conversation
  • let SDK-owned MCP subprocess cleanup finish when the ACP connection closes
  • skip unsupported HTTP/SSE transports with a diagnostic

Validation

  • bun run check — 42 tests, typecheck, and build
  • real ACP stdio entrypoint test proves a stubborn MCP process receives termination before the adapter exits
  • mutation check: restoring the prior forced process.exit(0) makes that cleanup regression fail
  • duplicate session/load test proves the displaced SDK session is closed
  • Agent SDK registration path uses the released @letta-ai/letta-agent-sdk@0.5.6

Scope

  • stdio MCP only; HTTP and SSE remain unsupported
  • MCP startup and request deadlines are owned by the Agent SDK / MCP SDK

Depends on letta-ai/letta-agent-sdk#242, released in v0.5.6.

👾 Generated with Letta Code

Bob and others added 3 commits July 29, 2026 04:35
Let ACP clients such as Zed attach stdio MCP servers to new and resumed sessions while keeping process ownership and Letta external-tool bridging in the Agent SDK.

See [trace](https://app.letta.com/chat/agent-57231da8-42f3-4523-b190-66c3eda21057?conversation=conv-a27fa457-e2f7-4e76-95fc-af32f0d984db). Resume conversation with `letta --conv conv-a27fa457-e2f7-4e76-95fc-af32f0d984db`

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>
Letta Code (agent-c2adbf5c-8419-4211-8cd8-3740db164974)

Preserve the merged model selector and native terminal support while resolving the MCP documentation and test conflicts.

Co-authored-by: Cameron <cameron@pfiffer.org>

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>
Letta Code (agent-c2adbf5c-8419-4211-8cd8-3740db164974)

Let the adapter process remain alive until SDK-owned MCP subprocess cleanup completes, and close displaced sessions when clients reload an already-open conversation.

Co-authored-by: Cameron <cameron@pfiffer.org>

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>
@just-cameron
just-cameron merged commit abf80ce into main Jul 29, 2026
1 check passed
@just-cameron
just-cameron deleted the letta/mcp-client-tools-05a6beb3 branch July 29, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant