Integrations
Provides configuration for use with Codeium Windsurf as an MCP-compatible client
Сервер Python MCP для извлечения графа кода
Этот сервер MCP (Model Context Protocol) предоставляет инструменты для извлечения и анализа структур кода Python, фокусируясь на отношениях импорта/экспорта между файлами. Это легкая реализация, не требующая агентской системы, что позволяет легко интегрировать ее в любое приложение Python.
Функции
- Обнаружение взаимосвязей кода : анализ взаимосвязей импорта между файлами Python.
- Интеллектуальное извлечение кода : извлекайте только самые важные разделы кода, чтобы не выходить за рамки ограничений по токенам.
- Контекст каталога : включение файлов из того же каталога для предоставления лучшего контекста.
- Включение документации : всегда включайте файлы README.md (или их варианты) для предоставления проектной документации.
- Форматирование, удобное для LLM : форматирование кода с использованием соответствующих метаданных для языковых моделей.
- Поддержка протокола MCP : полная совместимость со стандартом Model Context Protocol JSON-RPC
Инструмент get_python_code
Сервер предоставляет мощный инструмент извлечения кода, который:
- Анализирует целевой файл Python и обнаруживает все импортированные модули, классы и функции.
- Возвращает полный код целевого файла
- Включает код для всех указанных объектов из других файлов.
- Добавляет дополнительные контекстные файлы из того же каталога
- Соблюдает ограничения токенов, чтобы избежать перегрузки языковых моделей
Установка
Переменные среды
Создайте файл .env
на основе предоставленного .env.example
:
Использование
Настройка для клиентов MCP
Чтобы настроить этот сервер MCP для использования в клиентах, совместимых с MCP (например, Codeium Windsurf), добавьте следующую конфигурацию в файл конфигурации MCP вашего клиента:
Замените /path/to/python-mcp-new/server.py
на абсолютный путь к файлу server.py в вашей системе.
Вы также можете настроить переменные среды:
TOKEN_LIMIT
: Максимальный лимит токенов для извлечения кода (по умолчанию: 8000)
Примеры использования
Прямой вызов функции
Пример ответа (прямой вызов функции)
Использование протокола MCP
Список доступных инструментов
Пример ответа (инструменты/список)
Вызов инструмента get_python_code
Пример ответа (инструменты/звонок)
Обработка ошибок
Пример ответа об ошибке
Тестирование
Запустите тесты для проверки функциональности:
Ключевые компоненты
- agent.py : содержит функцию
get_python_code
и пользовательские обработчики протокола MCP - code_grapher.py : реализует класс
CodeGrapher
для анализа кода Python - server.py : Полная реализация сервера MCP с использованием MCP Python SDK
- run_server.py : CLI-инструмент для запуска сервера MCP
- examples/ : Примеры скриптов, показывающие, как использовать сервер и клиент MCP
- tests/ : Комплексные тестовые случаи для всех функций
Подробности формата ответа
Инструмент get_python_code
возвращает структурированный объект JSON со следующими полями:
Поле | Тип | Описание |
---|---|---|
target_file | Объект | Информация о целевом файле Python |
referenced_files | Множество | Список объектов, импортированных целевым файлом |
additional_files | Множество | Дополнительные файлы контекста из того же каталога |
total_files | Число | Общее количество файлов, включенных в ответ |
token_count | Число | Приблизительное количество токенов во всем включенном коде |
token_limit | Число | Максимальный лимит токенов, настроенный для извлечения |
Целевой объект файла
Поле | Тип | Описание |
---|---|---|
file_path | Нить | Относительный путь к файлу от корня репозитория |
code | Нить | Полный исходный код файла |
type | Нить | Всегда «цель» |
docstring | Нить | Строка документации на уровне модуля, если доступна |
Ссылочный объект файла
Поле | Тип | Описание |
---|---|---|
file_path | Нить | Относительный путь к файлу |
object_name | Нить | Имя импортируемого объекта (класс, функция и т. д.) |
object_type | Нить | Тип объекта («класс», «функция» и т. д.) |
code | Нить | Исходный код конкретного объекта |
docstring | Нить | Строка документации объекта, если доступна |
truncated | Булев | Был ли код усечен из-за ограничений токенов |
Дополнительный файловый объект
Поле | Тип | Описание |
---|---|---|
file_path | Нить | Относительный путь к файлу |
code | Нить | Полный исходный код файла |
type | Нить | Тип связи (например, «related_by_directory») |
docstring | Нить | Строка документации на уровне модуля, если доступна |
Использование сервера MCP SDK
Этот проект теперь включает полнофункциональный сервер Model Context Protocol (MCP), созданный с официальным Python MCP SDK . Сервер предоставляет нашу функциональность извлечения кода стандартизированным способом, который может использоваться с любым клиентом MCP, включая Claude Desktop.
Запуск сервера
Использование режима разработки MCP
Установив MCP SDK, вы можете запустить сервер в режиме разработки с помощью MCP CLI:
Это запустит MCP Inspector — веб-интерфейс для тестирования и отладки вашего сервера.
Интеграция рабочего стола Клода
Вы можете установить сервер в Claude Desktop, чтобы получить доступ к инструментам исследования кода непосредственно из Claude:
Развертывание индивидуального сервера
Для пользовательских развертываний вы можете использовать сервер MCP напрямую:
Использование MCP-клиента
Вы можете использовать MCP Python SDK для программного подключения к серверу. Смотрите предоставленный пример в examples/mcp_client_example.py
:
Запустите пример:
Добавление дополнительных инструментов
Вы можете добавить дополнительные инструменты на сервер MCP, декорировав функции с помощью декоратора @mcp.tool()
в server.py
:
Вы также можете добавить конечные точки ресурсов для предоставления данных напрямую:
Интеграция протокола контекста модели
Этот проект полностью соответствует стандарту Model Context Protocol (MCP) и предлагает два варианта реализации:
- Собственная интеграция MCP : исходная реализация в
agent.py
обеспечивает прямой интерфейс JSON-RPC, совместимый с MCP. - Интеграция MCP SDK : новая реализация в
server.py
использует официальный MCP Python SDK для более надежного и многофункционального опыта.
Преимущества интеграции MCP
- Стандартизированный интерфейс : делает ваши инструменты доступными для любого MCP-совместимого клиента.
- Повышенная безопасность : встроенная модель разрешений и контроль ресурсов
- Лучшая интеграция LLM : бесшовная интеграция с Claude Desktop и другими платформами LLM
- Улучшенный опыт разработчика : комплексный инструментарий, такой как MCP Inspector
Версия протокола MCP
Данная реализация поддерживает протокол MCP версии 0.7.0.
Более подробную информацию о MCP можно найти в официальной документации .
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Сервер протокола контекста модели, который извлекает и анализирует структуры кода Python, уделяя особое внимание связям импорта/экспорта между файлами, чтобы помочь магистрам уровня магистра права понимать контекст кода.
- Функции
- Инструмент get_python_code
- Установка
- Переменные среды
- Использование
- Примеры использования
- Тестирование
- Ключевые компоненты
- Подробности формата ответа
- Использование сервера MCP SDK
- Интеграция протокола контекста модели
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityA Python server implementing the Model Context Protocol to provide customizable prompt templates, resources, and tools that enhance LLM interactions in the continue.dev environment.Last updated -2Python
- AsecurityFlicenseAqualityA Model Context Protocol server that allows LLMs to interact with Python environments, execute code, and manage files within a specified working directory.Last updated -98Python
- -securityAlicense-qualityA Model Context Protocol (MCP) server designed to easily dump your codebase context into Large Language Models (LLMs).Last updated -0JavaScriptApache 2.0
- -security-license-qualityA Python implementation of the Model Context Protocol that allows applications to provide standardized context for LLMs, enabling creation of servers that expose data and functionality to LLM applications through resources, tools, and prompts.Last updated -PythonMIT License