Skip to main content
Glama

Letta MCP Server

npm version Rust Tests Coverage Docker Build License: MIT

Высокопроизводительный сервер Model Context Protocol (MCP) для Letta AI, созданный на Rust с использованием фреймворка TurboMCP.

Возможности

  • 7 консолидированных инструментов, охватывающих 103 операции с использованием паттерна дискриминатора

  • Высокая производительность — Rust, ~10-30 МБ памяти, запуск <500 мс, параллельное выполнение через tokio::join! и buffer_unordered

  • Двойной транспорт — stdio (Claude Desktop, Cursor и т.д.) и HTTP (для продакшн-развертываний)

  • Оптимизация размера ответа — сокращение размера ответов на 68-96% для повышения эффективности контекста LLM

  • Типизированные схемы — конкретные типы object/array с описаниями для каждого параметра (никаких общих параметров Value)

  • Мультиплатформенность — macOS, Linux, Windows (x64 и arm64)

  • Совместимость с Letta 0.16.x — архивы, диалоги, MCP-серверы v2

  • Соответствие MCP 2025-11-25 — потоковый HTTP-транспорт с SSE

  • Маршрутизация на этапе компиляции — нулевые накладные расходы во время выполнения для вызова инструментов через макросы TurboMCP v3

Related MCP server: A2A Client MCP Server

Быстрый старт

npm (Рекомендуется)

npm install -g letta-mcp-server

Правильный бинарный файл для вашей платформы устанавливается автоматически.

Платформа

Пакет

macOS Intel

letta-mcp-darwin-x64

macOS Apple Silicon

letta-mcp-darwin-arm64

Linux x64

letta-mcp-linux-x64

Linux arm64

letta-mcp-linux-arm64

Windows x64

letta-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

Да

URL API Letta (например, http://localhost:8283)

LETTA_PASSWORD

Да

Пароль API Letta

TRANSPORT

Нет

stdio

Режим транспорта: stdio или http

PORT

Нет

6507

HTTP-порт (когда TRANSPORT=http)

RUST_LOG

Нет

info

Уровень логирования: debug, info, warn, error

RUST_BACKTRACE

Нет

0

Включить трассировку стека (0 или 1)

Доступные инструменты

Сервер предоставляет 7 консолидированных инструментов с 103 операциями:

Инструмент

Операции

Описание

letta_agent_advanced

28

Жизненный цикл агента, обмен сообщениями, диалоги, контекст, экспорт/импорт

letta_memory_unified

24

Основная память, блоки, архивные фрагменты, архивы, поиск

letta_tool_manager

13

CRUD инструментов, подключение/отключение, пакетные операции

letta_source_manager

15

Источники данных, файлы, фрагменты, вложения

letta_job_monitor

4

Отслеживание заданий, отмена, активный мониторинг

letta_file_folder_ops

8

Файловые сессии, управление папками

letta_mcp_ops

11

Жизненный цикл MCP-сервера, обнаружение инструментов, поддержка API v2

Операции инструментов

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 включает значительные оптимизации размера ответа для эффективности контекста LLM:

Операция

Оптимизация

Сокращение размера

Список агентов

Пагинация по умолчанию (15 элементов), режим сводки

68-85%

Список инструментов

Пагинация по умолчанию (25 элементов), сокращенные описания

70-90%

Блоки памяти

Исключение тяжелых полей в режиме списка

60-80%

Список источников

Режим сводки, пагинация

75-95%

Пагинация

Все операции со списками поддерживают пагинацию:

{
  "operation": "list",
  "pagination": {
    "limit": 25,
    "offset": 0
  }
}

Режим сводки против полного режима

Операции со списками по умолчанию возвращают сводные данные. Используйте операцию get с конкретным ID для получения полной информации:

// 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

Сборка 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-клиент API Letta (0.16.x)

  • Tokio — асинхронная среда выполнения

  • Futures — комбинаторы потоков (buffer_unordered для параллельного выполнения)

  • Serde — сериализация/десериализация

Устранение неполадок

Connection Refused (Соединение отклонено)

  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

  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. Сделайте форк репозитория

  2. Создайте ветку для функции: git checkout -b feature/my-feature

  3. Внесите изменения и добавьте тесты

  4. Запустите тесты: cargo test

  5. Отправьте pull request

Лицензия

Лицензия MIT — подробности см. в файле LICENSE.

Связанные проекты

Install Server
A
security – no known vulnerabilities
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oculairmedia/Letta-MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server