mcpField
L
Letta MCP Server

Letta MCP Server

本地服务
github.com/oculairmediaAI 与智能体7917 周前更新

关于 Letta MCP Server

Letta MCP Server 是一个用 Rust 和 TurboMCP 框架构建的 MCP 服务,用于管理 Letta 服务并与 Agent 通信。它面向需要通过 MCP 操作 Letta 的开发者,主要特点是以较少的工具覆盖大量操作,并优化返回内容的体积。

主要功能

  1. 017 个整合工具覆盖 103 项操作
  2. 02支持 stdio 与 HTTP 两种传输方式
  3. 03通过分页与摘要模式减少返回体积
  4. 04类型明确的参数结构,每个参数均有说明
  5. 05支持 Letta 0.16.x 与 MCP 2025-11-25 规范

适用场景

  1. 01通过 MCP 客户端管理 Letta Agent 的生命周期与消息
  2. 02查看和更新 Agent 的核心记忆、记忆块与归档
  3. 03管理 Letta 的工具、数据源与 MCP 服务配置

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 Letta 的 Agent、记忆、工具、数据源和任务等操作。Claude Desktop、Cursor 等客户端可通过 stdio 或 HTTP 连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"Letta-MCP-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
启动命令docker run -i --rm pull

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocipull

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Letta MCP 服务

npm version Rust Tests Coverage Docker Build License: MIT

一个面向 Letta AI 的高性能模型上下文协议(MCP)服务,使用 Rust 和 TurboMCP 框架构建。

功能

  • 7 个整合工具:使用判别器模式涵盖 103 项操作
  • 高性能:使用 Rust,内存占用约为 10-30MB,启动时间小于 500ms,通过 tokio::join! 和 buffer_unordered 并行扇出
  • 双传输方式:stdio(Claude Desktop、Cursor 等)和 HTTP(生产部署)
  • 响应大小优化:响应大小减少 68-96%,提高大模型上下文效率
  • 类型收窄的 Schema:使用具体的 object/array 类型,并为每个参数提供描述(不使用通用的 Value 参数)
  • 多平台支持:macOS、Linux、Windows(x64 和 arm64)
  • 兼容 Letta 0.16.x:归档、对话、MCP 服务 v2
  • 符合 MCP 2025-11-25:支持 SSE 的可流式 HTTP 传输
  • 编译时路由:通过 TurboMCP v3 宏实现工具分派,运行时开销为零

快速开始

npm(推荐)
npm install -g letta-mcp-server

系统会自动安装适用于你平台的二进制文件。

平台软件包
macOS Intelletta-mcp-darwin-x64
macOS Apple Siliconletta-mcp-darwin-arm64
Linux x64letta-mcp-linux-x64
Linux arm64letta-mcp-linux-arm64
Windows x64letta-mcp-windows-x64
Docker
docker pull ghcr.io/oculairmedia/letta-mcp-server-rust:rust-latest

docker run -d \
  -p 6507:6507 \
  -e LETTA_BASE_URL=http://your-letta-instance:8283 \
  -e LETTA_PASSWORD=your-password \
  -e TRANSPORT=http \
  --name letta-mcp \
  ghcr.io/oculairmedia/letta-mcp-server-rust:rust-latest
Docker Compose
services:
  letta-mcp:
    image: ghcr.io/oculairmedia/letta-mcp-server-rust:rust-latest
    container_name: letta-mcp
    restart: unless-stopped
    ports:
      - '6507:6507'
    environment:
      LETTA_BASE_URL: ${LETTA_BASE_URL}
      LETTA_PASSWORD: ${LETTA_PASSWORD}
      TRANSPORT: http
      PORT: 6507
      RUST_LOG: info
    env_file:
      - .env
    healthcheck:
      test: ['CMD-SHELL', "timeout 1 bash -c '</dev/tcp/localhost/6507' || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3

环境变量

变量必需默认值描述
LETTA_BASE_URL是—Letta API URL(例如 http://localhost:8283)
LETTA_PASSWORD是—Letta API 密码
TRANSPORT否stdio传输模式:stdio 或 http
PORT否6507HTTP 端口(当 TRANSPORT=http 时)
RUST_LOG否info日志级别:debug、info、warn、error
RUST_BACKTRACE否0启用回溯(0 或 1)
LETTA_MCP_MAX_VALUE_LEN否500块、段落和搜索值的最大字符数
LETTA_MCP_CORE_MEMORY_PREVIEW_LEN否200核心记忆预览的最大字符数

可用工具

该服务提供 7 个整合工具,包含 103 项操作:

工具操作数描述
letta_agent_advanced28Agent 生命周期、消息、对话、上下文、导出/导入
letta_memory_unified24核心记忆、块、归档段落、归档、搜索
letta_tool_manager13工具增删改查、附加/分离、批量操作
letta_source_manager15数据源、文件、段落、附件
letta_job_monitor4任务跟踪、取消、活动监控
letta_file_folder_ops8文件会话、文件夹管理
letta_mcp_ops11MCP 服务生命周期、工具发现、支持 v2 API
工具操作
letta_agent_advanced(28 项操作)
list, create, get, update, delete, search, list_tools, send_message,
export, import, clone, get_config, bulk_delete, context, reset_messages,
summarize, stream, async_message, cancel_message, preview_payload,
search_messages, get_message, count, list_conversations,
get_conversation, send_conversation_message, cancel_conversation,
compact_conversation
letta_memory_unified(24 项操作)
get_core_memory, update_core_memory, get_block_by_label, list_blocks,
create_block, get_block, update_block, attach_block, detach_block,
list_agents_using_block, search_archival, list_passages, create_passage,
update_passage, delete_passage, search_memory, list_archives,
get_archive, create_archive, update_archive, delete_archive,
attach_archive, detach_archive, list_agents_using_archive
letta_tool_manager(13 项操作)
list, get, create, update, delete, upsert, attach, detach, bulk_attach,
generate_from_prompt, generate_schema, run_from_source, add_base_tools
letta_source_manager(15 项操作)
list, get, create, update, delete, count, attach, detach, list_attached,
upload, delete_files, list_files, list_folders, get_folder_contents,
list_agents_using
letta_job_monitor(4 个操作)
list, get, cancel, list_active
letta_file_folder_ops(8 个操作)
list_files, open_file, close_file, close_all_files, list_folders,
attach_folder, detach_folder, list_agents_in_folder
letta_mcp_ops(11 个操作)
add, update, delete, test, connect, resync, list_servers, list_tools,
register_tool, execute, attach_mcp_server

响应大小优化

Rust 实现针对大模型上下文效率进行了显著的响应大小优化:

操作优化大小缩减
Agent 列表默认分页(15 项)、摘要模式68-85%
工具列表默认分页(25 项)、截断描述70-90%
记忆块列表模式下排除较大的字段60-80%
源列表摘要模式、分页75-95%
分页

所有列表操作均支持分页:

{
  "operation": "list",
  "pagination": {
    "limit": 25,
    "offset": 0
  }
}
摘要模式与完整模式

列表操作默认返回摘要数据。使用带有特定 ID 的 get 操作可获取完整详情:

// Summary (default for list)
{
  "id": "agent-123",
  "name": "My Agent",
  "model": "gpt-4",
  "tool_count": 5
}

// Full (with get operation)
{
  "id": "agent-123",
  "name": "My Agent",
  "model": "gpt-4",
  "system_prompt": "...",
  "tools": [...],
  "memory_blocks": [...]
}

MCP 客户端配置

Claude Desktop
{
  "mcpServers": {
    "letta": {
      "command": "letta-mcp",
      "env": {
        "LETTA_BASE_URL": "http://localhost:8283",
        "LETTA_PASSWORD": "your-password"
      }
    }
  }
}
Cursor / Windsurf
{
  "mcpServers": {
    "letta": {
      "command": "letta-mcp",
      "env": {
        "LETTA_BASE_URL": "http://localhost:8283",
        "LETTA_PASSWORD": "your-password"
      }
    }
  }
}
OpenCode(HTTP)
{
  "mcp": {
    "letta-mcp": {
      "type": "remote",
      "url": "http://localhost:6507/mcp",
      "enabled": true
    }
  }
}

从源代码构建

前置条件
  • Rust nightly(支持 edition 2024)- 通过 rustup 安装
  • Docker(可选,用于容器化构建)
本地构建
git clone https://github.com/oculairmedia/Letta-MCP-server.git
cd Letta-MCP-server

cargo build --release

LETTA_BASE_URL=http://your-letta:8283 \
LETTA_PASSWORD=your-password \
./target/release/letta-server

进行本地开发时,Rust 二进制文件也会自动加载仓库级 .env 文件,因此无需手动导出变量即可运行 cargo run -p letta-server。

Docker 构建
docker build -f Dockerfile.rust -t letta-mcp .

docker run -d \
  -p 6507:6507 \
  -e LETTA_BASE_URL=http://your-letta:8283 \
  -e LETTA_PASSWORD=your-password \
  -e TRANSPORT=http \
  letta-mcp

架构

letta-server/
├── src/
│   ├── main.rs                        # Entry point, transport selection
│   ├── lib.rs                         # Server init, compile-time tool registration
│   └── tools/
│       ├── mod.rs                     # Tool module exports
│       ├── response_utils.rs          # Unified ToolResponse, pagination helpers
│       ├── validation_utils.rs        # require_field, require_id, sdk_err
│       ├── id_utils.rs               # ID parsing utilities
│       ├── agent_advanced/            # Agent operations (28 ops)
│       │   ├── crud.rs               #   list, create, get, update, delete, search
│       │   ├── messaging.rs           #   send_message, stream, async, preview
│       │   ├── conversations.rs       #   list, get, send, cancel, compact
│       │   └── management.rs          #   export, import, clone, config, bulk_delete
│       ├── memory_unified/            # Memory operations (24 ops)
│       │   ├── core.rs               #   get/update core memory
│       │   ├── blocks.rs             #   block CRUD, attach/detach
│       │   ├── passages.rs           #   archival passage CRUD
│       │   ├── archives.rs           #   archive CRUD, attach/detach
│       │   └── search.rs             #   search_archival, search_memory
│       ├── tool_manager.rs            # Tool operations (13 ops)
│       ├── source_manager.rs          # Source operations (15 ops)
│       ├── job_monitor.rs             # Job operations (4 ops)
│       ├── file_folder_ops.rs         # File/folder operations (8 ops)
│       └── mcp_ops.rs                # MCP server v2 operations (11 ops)
├── tests/                             # Integration tests
└── Cargo.toml
主要依赖项
  • TurboMCP v3 -- MCP 框架,支持编译时路由和可流式 HTTP
  • letta-rs -- 随附的 Rust Letta API 客户端(0.16.x)
  • Tokio -- 异步运行时
  • Futures -- 流组合器(用于并行扇出的 buffer_unordered)
  • Serde -- 序列化/反序列化

故障排除

连接被拒绝
  1. 确保服务正在运行:docker ps | grep letta-mcp
  2. 检查日志:docker logs letta-mcp
  3. 验证端口是否可访问:curl http://localhost:6507/mcp
身份验证错误
  1. 确认 LETTA_BASE_URL 指向你的 Letta 实例
  2. 检查 LETTA_PASSWORD 或 LETTA_API_TOKEN 是否正确
  3. 确保可从容器访问 Letta 服务
找不到工具
  1. 通过 MCP 列出可用工具:tools/list
  2. 确认使用了正确的操作名称(例如,使用 list 而非 list_agents)
日志
# View server logs
docker logs -f letta-mcp

# Enable debug logging
RUST_LOG=debug letta-mcp

贡献

  1. Fork 此仓库
  2. 创建功能分支:git checkout -b feature/my-feature
  3. 进行更改并添加测试
  4. 运行测试:cargo test
  5. 提交拉取请求

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

相关项目

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。