MCP ArcKnowledge

Gestiona y consulta bases de conocimiento personalizadas mediante endpoints de webhook.

Documentación

MCP ArcKnowledge

smithery badge arc knowledge MCP

¿Cómo funciona?

arc knowledge diagram

Este es un servidor de Protocolo de Contexto de Modelo (MCP) para tus endpoints de webhook personalizados (base de conocimiento).

Con esto puedes gestionar y consultar fácilmente tu lista de base de conocimiento (endpoints de webhook). Puedes añadir nuevas fuentes de documentos registrando sus URLs y, opcionalmente, proporcionar una descripción y una clave de API.

También puedes listar todas las fuentes de documentos registradas y ver sus detalles.

Cuando estés listo para preguntar/buscar, puedes consultar la base de conocimiento con una pregunta de texto, especificando qué fuentes buscar o dejándolo en blanco para buscar en todas.

La herramienta agregará los resultados de las fuentes consultadas y te los proporcionará.

Requisitos previos

  • Go
  • Python 3.6+
  • Aplicación Anthropic Claude Desktop (o Cursor o Cline)
  • UV (gestor de paquetes de Python), instalar con curl -LsSf https://astral.sh/uv/install.sh | sh

Concepto

Imagina poder crear una configuración unificada donde puedas conectar todos tus endpoints webhook de base de conocimiento personalizados en una sola configuración, eliminando la necesidad de múltiples servidores MCP.

Demo

arcknowledge demo cursor arcknowledge demo cursor arcknowledge demo cline

Ver video de mcp cursor

Instalación y configuración

Instalación mediante Smithery

Para instalar ArcKnowledge para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @dragonjump/mcp-ARCknowledge --client claude
  1. Clonar el repositorio
git clone https://github.com/dragonjump/mcp-arcknowledge
cd mcp-arcknowledge
  1. Configurar endpoints Haz una copia o cambia knowledge_document_sources.json. Consulta la carpeta sample_endpoint para referencias sobre el esquema de API de endpoints de conocimiento actualmente soportado. Puedes cambiar el código como desees para adaptarlo a tus necesidades.

  2. Conectar al servidor MCP

    Copia el siguiente json con los valores {{PATH}} apropiados:

     {
         "mcpServers": {
             "mcp-arcknowledge": {
                 "command": "cmd /c uv",
                 "args": [
                     "--directory",
                     "C:/Users/Acer/OneDrive/GitHub/YourDrive",
                     "run",
                     "main.py"
                 ],
                 "env": {
                     "DOCUMENT_SOURCES_PATH": "C:/Users/Acer/OneDrive/GitHub/YourDrive/testcustomother.json"
                 }
             }
         }
     }
    

Para Claude, guarda esto como claude_desktop_config.json en tu directorio de configuración de Claude Desktop en:

~/Library/Application Support/Claude/claude_desktop_config.json

Para Cursor, guarda esto como mcp.json en tu directorio de configuración de Cursor en:

~/.cursor/mcp.json

Para cline, guarda esto como cline_mcp_settings.json en tu configuración

  1. Reiniciar el cliente: Claude Desktop / Cursor / Cline / Windsurf Abre y reinicia tu IDE de cliente para MCP. Por ejemplo, Claude/Cursor/Cline, etc.

Compatibilidad con Windows

Si estás ejecutando este proyecto en Windows, ten en cuenta que go-sqlite3 requiere que CGO esté habilitado para compilar y funcionar correctamente. Por defecto, CGO está deshabilitado en Windows, por lo que debes habilitarlo explícitamente y tener un compilador de C instalado.

Pasos para que funcione:

  1. Instalar un compilador de C
    Recomendamos usar MSYS2 para instalar un compilador de C para Windows. Después de instalar MSYS2, asegúrate de añadir la carpeta ucrt64\bin a tu PATH.
    → Hay una guía paso a paso disponible aquí.

Descripción general de la arquitectura

Esta aplicación consta de un componente principal simple:

Servidor MCP de Python (main.py): Un servidor de Python que implementa el Protocolo de Contexto de Modelo (MCP), que proporciona herramientas estandarizadas para que el cliente interactúe con los datos e invoque llamadas a la API.

Almacenamiento de datos

  • Todo el almacenamiento es local en tiempo de ejecución del servidor principal de Python.

Detalles técnicos

  1. El cliente envía solicitudes al servidor MCP de Python
  2. El servidor MCP consulta su base de conocimiento de configuración en tiempo de ejecución.
  3. Luego, según tus consultas, llama a la API de endpoint de tu base de conocimiento.

Solución de problemas

  • Si encuentras problemas de permisos al ejecutar uv, es posible que necesites añadirlo a tu PATH o usar la ruta completa al ejecutable.
  • Asegúrate de que tanto la aplicación Go como el servidor de Python estén ejecutándose para que la integración funcione correctamente.

Iniciar el servidor

  1. Configuración Ejecuta el servidor en modo de desarrollo:
fastmcp dev main.py

O instálalo para usarlo con Claude:

fastmcp install main.py

Herramientas disponibles

1. Carga por defecto la lista de conocimiento desde knowledge_document_sources.json

Carga por defecto las fuentes de conocimiento desde la configuración

knowledge_document_sources.json
 

Puedes cargar conocimiento personalizado desde la configuración de entorno mcp.json


        "env": {
            "DOCUMENT_SOURCES_PATH": "C:/Users/Acer/OneDrive/Somewhere/YourDrive/your-custom.json"
        }

2. Listar todas las fuentes de conocimiento registradas actualmente

Muestra y explica la lista de todas las fuentes de conocimiento registradas.

eg. Show me my arcknowledge list 
 

3. Añadir nueva fuente de documento de conocimiento

Añade nuevas fuentes de documentos con URL de endpoint de arcknowledge. Proporciona URL, descripción, propósito y clave de API (si la hay)

eg. Add new arcknowledge data source. Endpoint is http://something.com/api/123.
Purpose is to handle questions on 123 topic. Api key is 'sk-2123123' 
 

4. Consultar una fuente de documento de conocimiento específica

Consulta la base de arcknowledge construida a partir de estas fuentes usando query_knowledge_base.

eg. Query for me my  knowledge base for product. Question is : Which is most expensive product? 


eg. Query for me my  arcknowledge base for business. Question is :When is the business established? 

eg. Query for me all my  arcknowledge base  . Question is :When is the business established? Which is most expensive product?

Funciones de las herramientas

  1. add_new_knowledge_document_source(url: str, description:str = None, apikey:str = None) -> str

    • Registra una nueva URL de fuente de documento, opcionalmente con una descripción y clave de API.
    • Devuelve: Mensaje de confirmación con el ID de la nueva fuente.
  2. list_knowledge_document_sources() -> Dict[str, Dict[str, str]]

    • Lista todas las fuentes de documentos registradas.
    • Devuelve: Diccionario que mapea los IDs de las fuentes a sus detalles (URL, descripción, clave de API).
  3. query_knowledge_base(query: str, source_ids: List[str] = [], image: str = '') -> str

    • Consulta las fuentes de documentos especificadas (o todas si no se especifica ninguna) con una consulta de texto y datos de imagen opcionales.
    • Devuelve: Resultados agregados de las fuentes consultadas.

Desarrollo

Archivos cruciales / Estructura del proyecto

mcp-arcknowledge/
├── main.py          # Main server implementation
├── README.md           # Documentation
├── requirements.txt    # Project dependencies

Configuración de MCP en Cursor AI

  1. Crea un archivo mcp.json en la raíz de tu proyecto:
{
    "name": "mcp-webhook-ai-agent",
    "version": "1.0.0",
    "description": "Webhook AI agent with RAG capabilities",
    "main": "main.py",
    "tools": [
        {
            "name": "set_document_source",
            "description": "Register a new document source URL for RAG operations"
        },
        {
            "name": "list_document_sources",
            "description": "List all registered document sources"
        },
        {
            "name": "query_rag",
            "description": "Query the specified document sources using RAG"
        },
        {
            "name": "process_post_query",
            "description": "Process a POST request with a query payload"
        }
    ],
    "dependencies": {
        "fastmcp": ">=0.4.0",
        "requests": ">=2.31.0",
        "pydantic": ">=2.0.0"
    }
}
  1. Configura Cursor AI:

    • Abre la configuración de Cursor AI
    • Navega a la sección de MCP
    • Añade la ruta a tu archivo mcp.json
    • Reinicia Cursor AI para aplicar los cambios
  2. Verificar la configuración:

# Check if MCP is properly configured
fastmcp check mcp.json

# List available tools
fastmcp list

Añadir nuevas funciones

  1. Define nuevos modelos en main.py
  2. Añade nuevas herramientas usando el decorador @mcp.tool()
  3. Actualiza la documentación según sea necesario

Licencia

MIT

Contribuciones

  1. Haz un fork del repositorio
  2. Crea tu rama de características
  3. Haz commit de tus cambios
  4. Haz push a la rama
  5. Crea un nuevo Pull Request