Skip to main content
Glama
GwangPyo

nautilus-trader MCP server

by GwangPyo

nautilus-trader MCP сервер

Что это такое

MCP (Model Context Protocol) сервер, который дает LLM (Claude Code, Codex CLI и т.д.) два способа поиска информации в nautilus_trader при написании торгового кода на его основе:

  • Поиск по коду (index.py) -- структурный поиск по исходному коду (Python + Rust), по имени символа. Это не нечеткий текстовый/эмбеддинговый поиск: он находит реальный класс/функцию/структуру и возвращает их docstring или полный исходный код.

  • Поиск по документации (rags/) -- семантический (на основе эмбеддингов) поиск по markdown-документации проекта (концепции, руководства, туториалы), для вопросов вида "как мне...", которые не сводятся к одному имени символа.

Related MCP server: MCPyDoc

Как это работает

  • index.py запускает два настоящих языковых сервера как подпроцессы и общается с ними напрямую по LSP (JSON-RPC через stdio) -- pylsp для Python-исходников в nautilus_trader/python/nautilus_trader, rust-analyzer для Rust-исходников в nautilus_trader/crates. documentSymbol находит классы/функции/структуры/impl верхнего уровня; hover получает docstring (только для Python -- см. Известные ограничения). Результаты кэшируются в .code_index_cache.json, так как построение занимает ~25 секунд (в основном rust-analyzer на ~2600 файлах).

  • rags/rag_build.py разбивает каждый файл в docs/ на чанки и строит индекс dspy.retrievers.Embeddings (эмбеддинги Gemini), сохраняемый в rags/ (config.json + corpus_embeddings.npy), а также shape.json, который записывает исходную структуру папок, чтобы rags/search.py мог фильтровать по подпапке.

  • mcp_server.py подключает оба механизма к 5 MCP-инструментам: search_code, get_code_doc, get_code_source, search_docs, show_doc_keys.

Установка

git clone https://github.com/GwangPyo/NautilusTraderMCP.git
cd NautilusTraderMCP
cp .env.example .env   # fill in GEMINI_API_KEY (and OPENAI/ANTHROPIC if you use load_model)
./install.sh           # conda env "mcp" + deps, nautilus_trader clone, code index, doc index

install.sh идемпотентен: при повторном запуске он пропускает клонирование nautilus_trader, копирование docs/ и (платную) сборку эмбеддингов документации, если они уже существуют. Задайте ENV_NAME=<имя>, чтобы использовать другое имя conda-окружения (используется для тестирования, чтобы не затрагивать реальное окружение mcp).

Менеджер окружений не обязателен -- uv venv && uv pip install -e . тоже работает; install.sh просто стандартизирует установку на conda для воспроизводимой однокомандной настройки.

Регистрация в клиенте

./add_claude.sh   # claude mcp add
./add_codex.sh    # codex mcp add

Оба варианта просто указывают клиенту на <conda mcp env>/bin/python3 mcp_server.py через stdio.

Известные ограничения / TODO

  • У .code_index_cache.json и rags/{config.json,corpus_embeddings.npy,shape.json} нет инвалидации -- если nautilus_trader/ или docs/ изменятся, вам придется вручную удалить файлы кэша и перезапустить, чтобы изменения подхватились.

  • Нет автоматических тестов -- все проверялось вручную (свежее conda-окружение, свежее uv-окружение, реальный MCP-клиент через stdio).

  • nautilus_trader/ клонируется из main (без закрепления версии) -- может дрейфовать со временем; сейчас ничто не проверяет его на соответствие известному хорошему коммиту/тегу.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides real-time access to Python package documentation, source code, and symbol search to prevent AI hallucinations.
    144 PyPI
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes type-aware code navigation and fast file search to AI agents via language servers, enabling definitions, references, symbols, and file lookup without reading entire codebases.
    3,050 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables LLMs to efficiently navigate large codebases by providing surgical access to specific code symbols via semantic search and call-graph queries.
    6
    MIT