Documentation Retrieval MCP Server (DOCRET)

Servidor MCP de recuperación de documentación (DOCRET)

Este proyecto implementa un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA acceder a la documentación actualizada de diversas bibliotecas de Python, como LangChain, LlamaIndex y OpenAI. Al aprovechar este servidor, los asistentes de IA pueden obtener y proporcionar dinámicamente información relevante de fuentes de documentación oficial. El objetivo es garantizar que las aplicaciones de IA siempre tengan acceso a la documentación oficial más reciente.

¿Qué es un servidor MCP?

El Protocolo de Contexto de Modelo (MCP) es un estándar abierto que permite a los desarrolladores crear conexiones bidireccionales seguras entre sus fuentes de datos y herramientas basadas en IA. Su arquitectura es sencilla: los desarrolladores pueden exponer sus datos a través de servidores MCP o crear aplicaciones de IA (clientes MCP) que se conecten a estos servidores.

Características

  • Recuperación de documentación dinámica : obtiene el contenido de documentación más reciente para las bibliotecas de Python especificadas.
  • Búsquedas web asincrónicas : utiliza la API SERPER para realizar búsquedas web eficientes dentro de sitios de documentación específicos.
  • Análisis de HTML : utiliza BeautifulSoup para extraer texto legible del contenido HTML.
  • Diseño extensible : agregue fácilmente soporte para bibliotecas adicionales actualizando la configuración.

Prerrequisitos

  • Python 3.8 o superior
  • UV para la gestión de paquetes de Python (o pip si eres un plebeyo)
  • Una clave API de Serper (para búsquedas de Google o "SERP")
  • Claude Desktop o Claude Code (para pruebas)

Instalación

1. Clonar el repositorio

git clone https://github.com/Sreedeep-SS/docret-mcp-server.git cd docret-mcp-server

2. Crear y activar un entorno virtual

  • En macOS/Linux :
    python3 -m venv env source env/bin/activate
  • En Windows :
    python -m venv env .\env\Scripts\activate

3. Instalar dependencias

Con el entorno virtual activado, instale las dependencias necesarias:

pip install -r requirements.txt

o si estás usando uv:

uv sync

Configurar variables de entorno

Antes de ejecutar la aplicación, configure las variables de entorno necesarias. Este proyecto utiliza la API de SERPER para buscar documentación y requiere una clave de API.

  1. Cree un archivo .env en el directorio raíz del proyecto.
  2. Agregue la siguiente variable de entorno:
    SERPER_API_KEY=your_serper_api_key_here

Reemplace your_serper_api_key_here con su clave API real.

Ejecución del servidor MCP

Una vez instaladas las dependencias y configuradas las variables de entorno, puede iniciar el servidor MCP.

python main.py

Esto iniciará el servidor y lo preparará para manejar solicitudes.

Uso

El servidor MCP proporciona una API para obtener contenido de documentación de las bibliotecas compatibles. Funciona consultando la API de SERPER para encontrar enlaces de documentación relevantes y extrayendo el contenido de la página.

Búsqueda de documentación

Para buscar documentación sobre un tema específico en una biblioteca, utilice la función get_docs . Esta función acepta dos parámetros:

  • query : El tema a buscar (por ejemplo, "Chroma DB")
  • library : el nombre de la biblioteca (por ejemplo, "langchain")

Ejemplo de uso:

from main import get_docs result = await get_docs("memory management", "openai") print(result)

Esto devolverá el texto extraído de las páginas de documentación de OpenAI relevantes.

Integración con asistentes de IA

Puedes integrar este servidor MCP con asistentes de IA como Claude o modelos de IA personalizados. Para configurar el asistente para que interactúe con el servidor, utiliza la siguiente configuración:

{ "servers": [ { "name": "Documentation Retrieval Server", "command": "python /path/to/main.py" } ] }

Asegúrese de que se especifique la ruta correcta a main.py

Ampliación del servidor MCP

Actualmente el servidor admite las siguientes bibliotecas:

  • LangChain
  • Índice de llamas
  • OpenAI

Para agregar soporte para bibliotecas adicionales, actualice el diccionario docs_urls en main.py con el nombre de la biblioteca y su URL de documentación:

docs_urls = { "langchain": "python.langchain.com/docs", "llama-index": "docs.llamaindex.ai/en/stable", "openai": "platform.openai.com/docs", "new-library": "new-library-docs-url.com", }

📌 Hoja de ruta

Seguramente esto es realmente emocionante para mí y espero seguir desarrollando esto y mantenerme actualizado con las últimas noticias e ideas que se puedan implementar.

Esto es lo que tengo en mente:

  1. Añadir soporte para más bibliotecas (por ejemplo, Hugging Face, PyTorch)

    • Amplíe el diccionario docs_urls con bibliotecas adicionales.
    • Modifique la función get_docs para manejar diferentes formatos de páginas de documentación.
    • Utilice análisis basado en expresiones regulares o impulsado por IA para extraer mejor contenido significativo.
    • Proporciona un punto final de API para agregar nuevas bibliotecas dinámicamente.
  2. Implementar el almacenamiento en caché para reducir las llamadas API redundantes

    • Utilice Redis o un mecanismo de almacenamiento en caché en memoria como functools.lru_cache
    • Implementar la invalidación de caché basada en el tiempo.
    • Resultados de caché por biblioteca y por término de búsqueda.
  3. Optimice el web scraping con resúmenes impulsados por IA

    • Utilice GPT-4 , BART o T5 para resumir la documentación extraída.
    • También se pueden usar Claude 3 Haiku , Gemini 1.5 Pro , GPT-4-mini , Open-mistral-nemo , Hugging Face Models y muchos más. Todos ellos están sujetos a debate.
    • Permita a los usuarios elegir entre el texto de la documentación sin procesar y una versión resumida.
  4. Introducir una API REST para integraciones externas

    • Usa FastAPI para exponer los puntos finales de la API. (Simplemente porque sí)
    • Crea un panel frontal sencillo para interactuar con la API. (¿Por qué no?)
  5. Añadir pruebas unitarias para una mejor confiabilidadReferencias

    • Usen pytest y unittest para las pruebas de fiabilidad de la API y el scraping. (Lo último que queremos es que esto se convierta en una bomba nuclear).
    • Implementar flujos de trabajo de CI/CD para ejecutar pruebas automáticamente en cada envío. (La clave, por supuesto).
  6. Más herramientas MCP que pueden ser útiles durante el desarrollo

    • Integraciones de bases de datos
    • Integración con Google Docs/Sheets/Drive
    • Operaciones del sistema de archivos
    • Integración de Git
    • Integración de plataformas de comunicación para convertir ideas en productos
    • Gestión de Docker y Kubernetes

Referencias

Para obtener más detalles sobre los servidores MCP y su implementación, consulte la guía:

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.

ID: j1bg7jklhy