local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides configuration for use with Codeium Windsurf as an MCP-compatible client
Servidor MCP de Python para la extracción de gráficos de código
Este servidor MCP (Protocolo de Contexto de Modelo) proporciona herramientas para extraer y analizar estructuras de código Python, centrándose en las relaciones de importación/exportación entre archivos. Se trata de una implementación ligera que no requiere un sistema de agente, lo que facilita su integración en cualquier aplicación Python.
Características
- Descubrimiento de relaciones de código : Analice las relaciones de importación entre archivos de Python
- Extracción de código inteligente : extraiga solo las secciones de código más relevantes para mantenerse dentro de los límites de tokens
- Contexto de directorio : incluya archivos del mismo directorio para proporcionar un mejor contexto
- Inclusión de documentación : incluya siempre archivos README.md (o variantes) para proporcionar documentación del proyecto
- Formato compatible con LLM : formatee el código con metadatos adecuados para los modelos de lenguaje
- Compatibilidad con el protocolo MCP : totalmente compatible con el estándar JSON-RPC del protocolo de contexto de modelo
La herramienta get_python_code
El servidor expone una potente herramienta de extracción de código que:
- Analiza un archivo Python de destino y descubre todos los módulos, clases y funciones importados
- Devuelve el código completo del archivo de destino.
- Incluye código para todos los objetos referenciados desde otros archivos
- Agrega archivos contextuales adicionales del mismo directorio
- Respeta los límites de tokens para evitar saturar los modelos de lenguaje
Instalación
Variables de entorno
Cree un archivo .env
basado en el .env.example
proporcionado:
Uso
Configuración para clientes MCP
Para configurar este servidor MCP para su uso en clientes compatibles con MCP (como Codeium Windsurf), agregue la siguiente configuración al archivo de configuración MCP de su cliente:
Reemplace /path/to/python-mcp-new/server.py
con la ruta absoluta al archivo server.py en su sistema.
También puedes personalizar las variables de entorno:
TOKEN_LIMIT
: Límite máximo de tokens para la extracción de código (predeterminado: 8000)
Ejemplos de uso
Llamada de función directa
Ejemplo de respuesta (llamada de función directa)
Usando el protocolo MCP
Listado de herramientas disponibles
Ejemplo de respuesta (herramientas/lista)
Llamar a la herramienta get_python_code
Ejemplo de respuesta (herramientas/llamada)
Manejo de errores
Ejemplo de respuesta de error
Pruebas
Ejecute las pruebas para verificar la funcionalidad:
Componentes clave
- agent.py : contiene la función
get_python_code
y controladores de protocolo MCP personalizados - code_grapher.py : Implementa la clase
CodeGrapher
para el análisis de código Python - server.py : Implementación completa del servidor MCP utilizando el SDK de Python de MCP
- run_server.py : herramienta CLI para ejecutar el servidor MCP
- ejemplos/ : Scripts de ejemplo que muestran cómo utilizar el servidor y el cliente MCP
- pruebas/ : Casos de prueba completos para todas las funcionalidades
Detalles del formato de respuesta
La herramienta get_python_code
devuelve un objeto JSON estructurado con los siguientes campos:
Campo | Tipo | Descripción |
---|---|---|
target_file | Objeto | Información sobre el archivo Python de destino |
referenced_files | Formación | Lista de objetos importados por el archivo de destino |
additional_files | Formación | Archivos de contexto adicionales del mismo directorio |
total_files | Número | Número total de archivos incluidos en la respuesta |
token_count | Número | Recuento aproximado de tokens en todo el código incluido |
token_limit | Número | Límite máximo de tokens configurado para la extracción |
Objeto de archivo de destino
Campo | Tipo | Descripción |
---|---|---|
file_path | Cadena | Ruta relativa al archivo desde la raíz del repositorio |
code | Cadena | Código fuente completo del archivo |
type | Cadena | Siempre "apunta" |
docstring | Cadena | Cadena de documentación a nivel de módulo, si está disponible |
Objeto de archivo referenciado
Campo | Tipo | Descripción |
---|---|---|
file_path | Cadena | Ruta relativa al archivo |
object_name | Cadena | Nombre del objeto importado (clase, función, etc.) |
object_type | Cadena | Tipo del objeto ("clase", "función", etc.) |
code | Cadena | Código fuente del objeto específico |
docstring | Cadena | Cadena de documentación del objeto si está disponible |
truncated | Booleano | Si el código se truncó debido a límites de tokens |
Objeto de archivo adicional
Campo | Tipo | Descripción |
---|---|---|
file_path | Cadena | Ruta relativa al archivo |
code | Cadena | Código fuente completo del archivo |
type | Cadena | Tipo de relación (por ejemplo, "related_by_directory") |
docstring | Cadena | Cadena de documentación a nivel de módulo, si está disponible |
Uso del servidor SDK de MCP
Este proyecto ahora incluye un servidor completo de Protocolo de Contexto de Modelo (MCP), desarrollado con el SDK oficial de MCP de Python . El servidor expone nuestra funcionalidad de extracción de código de forma estandarizada, compatible con cualquier cliente MCP, incluido Claude Desktop.
Iniciando el servidor
Uso del modo de desarrollo MCP
Con el SDK de MCP instalado, puede ejecutar el servidor en modo de desarrollo utilizando la CLI de MCP:
Esto iniciará el Inspector MCP, una interfaz web para probar y depurar su servidor.
Integración de escritorio de Claude
Puede instalar el servidor en Claude Desktop para acceder a sus herramientas de exploración de código directamente desde Claude:
Implementación de servidor personalizado
Para implementaciones personalizadas, puede utilizar el servidor MCP directamente:
Uso del cliente MCP
Puede usar el SDK de Python de MCP para conectarse al servidor mediante programación. Consulte el ejemplo proporcionado en examples/mcp_client_example.py
:
Ejecute el ejemplo:
Agregar herramientas adicionales
Puede agregar herramientas adicionales al servidor MCP decorando funciones con el decorador @mcp.tool()
en server.py
:
También puedes agregar puntos finales de recursos para proporcionar datos directamente:
Integración del protocolo de contexto del modelo
Este proyecto adopta en su totalidad el estándar del Protocolo de Contexto de Modelo (MCP), proporcionando dos opciones de implementación:
- Integración nativa de MCP : la implementación original en
agent.py
proporciona una interfaz JSON-RPC directa compatible con MCP. - Integración del SDK de MCP : la nueva implementación en
server.py
aprovecha el SDK oficial de Python de MCP para una experiencia más sólida y con más funciones.
Beneficios de la integración de MCP
- Interfaz estandarizada : hace que sus herramientas estén disponibles para cualquier cliente compatible con MCP
- Seguridad mejorada : modelo de permisos integrado y controles de recursos
- Mejor integración LLM : integración perfecta con Claude Desktop y otras plataformas LLM
- Experiencia de desarrollador mejorada : herramientas integrales como el Inspector MCP
Versión del protocolo MCP
Esta implementación es compatible con el protocolo MCP versión 0.7.0.
Para obtener más información sobre MCP, consulte la documentación oficial .
This server cannot be installed
Un servidor de protocolo de contexto de modelo que extrae y analiza estructuras de código Python, centrándose en las relaciones de importación/exportación entre archivos para ayudar a los LLM a comprender el contexto del código.
- Features
- The get_python_code Tool
- Installation
- Environment Variables
- Usage
- Usage Examples
- Testing
- Key Components
- Response Format Details
- Using the MCP SDK Server
- Model Context Protocol Integration