Knowledge Base MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Uses the Hugging Face Inference API to generate embeddings for the knowledge base content, with optional model selection through environment variables.

  • Uses LangChain's MarkdownTextSplitter to split file content into chunks for the knowledge base.

Base de conocimientos del servidor MCP

Este servidor MCP proporciona herramientas para enumerar y recuperar contenido de diferentes bases de conocimiento.

Instrucciones de configuración

Estas instrucciones asumen que tiene Node.js y npm instalados en su sistema.

Prerrequisitos

  • Node.js (versión 16 o superior)
  • npm (Administrador de paquetes de Node)
  1. Clonar el repositorio:
    git clone <repository_url> cd knowledge-base-mcp-server
  2. Instalar dependencias:
    npm install
  3. Configurar variables de entorno:
    • El servidor requiere que se configure la variable de entorno HUGGINGFACE_API_KEY . Esta es la clave API para la API de inferencia de Hugging Face, que se utiliza para generar incrustaciones para el contenido de la base de conocimiento. Puede obtener una clave API gratuita en el sitio web de Hugging Face ( https://huggingface.co/ ).
    • El servidor requiere que se configure la variable de entorno KNOWLEDGE_BASES_ROOT_DIR . Esta variable especifica el directorio donde se encuentran los subdirectorios de la base de conocimientos. Si no se configura, se tomará por defecto $HOME/knowledge_bases , donde $HOME es el directorio de inicio del usuario actual.
    • El servidor admite la variable de entorno FAISS_INDEX_PATH para especificar la ruta al índice FAISS. Si no se configura, se usará de forma predeterminada $HOME/knowledge_bases/.faiss .
    • El servidor admite la variable de entorno HUGGINGFACE_MODEL_NAME para especificar el modelo Hugging Face que se usará para generar incrustaciones. Si no se configura, se usará sentence-transformers/all-MiniLM-L6-v2 de forma predeterminada.
    • Puede configurar estas variables de entorno en su archivo .bashrc o .zshrc , o directamente en la configuración de MCP.
  4. Construir el servidor:
    npm run build
  5. Agregue el servidor a la configuración de MCP:
    • Edite el archivo cline_mcp_settings.json ubicado en /home/jean/.vscode-server/data/User/globalStorage/saoudrizwan.claude-dev/settings/ .
    • Agregue la siguiente configuración al objeto mcpServers :
    "knowledge-base-mcp": { "command": "node", "args": [ "/path/to/knowledge-base-mcp-server/build/index.js" ], "disabled": false, "autoApprove": [], "env": { "KNOWLEDGE_BASES_ROOT_DIR": "/path/to/knowledge_bases", "HUGGINGFACE_API_KEY": "YOUR_HUGGINGFACE_API_KEY", }, "description": "Retrieves similar chunks from the knowledge base based on a query." },
    • Reemplace /path/to/knowledge-base-mcp-server con la ruta real al directorio del servidor.
    • Reemplace /path/to/knowledge_bases con la ruta real al directorio de bases de conocimiento.
  6. Crear directorios de base de conocimientos:
    • Cree subdirectorios dentro de KNOWLEDGE_BASES_ROOT_DIR para cada base de conocimiento (por ejemplo, company , it_support , onboarding ).
    • Coloque los archivos de texto (por ejemplo, .txt , .md ) que contienen el contenido de la base de conocimiento dentro de estos subdirectorios.
  • El servidor lee de forma recursiva todos los archivos de texto (por ejemplo, .txt , .md ) dentro de los subdirectorios de la base de conocimiento especificados.
  • El servidor omite los archivos y directorios ocultos (aquellos que comienzan con . ).
  • Para cada archivo, el servidor calcula el hash SHA256 y lo almacena en un archivo con el mismo nombre en un subdirectorio oculto .index . Este hash se utiliza para determinar si el archivo se ha modificado desde la última indexación.
  • El contenido del archivo se divide en fragmentos utilizando MarkdownTextSplitter de langchain/text_splitter .
  • Luego, el contenido de cada fragmento se agrega a un índice FAISS, que se utiliza para la búsqueda de similitud.
  • El índice FAISS se inicializa automáticamente al iniciar el servidor. Comprueba si hay cambios en los archivos de la base de conocimiento y actualiza el índice según corresponda.

Uso

El servidor expone dos herramientas:

  • list_knowledge_bases : enumera las bases de conocimiento disponibles.
  • retrieve_knowledge : Recupera fragmentos similares de la base de conocimiento mediante una consulta. Opcionalmente, si se especifica una base de conocimiento, solo se busca en ella; de lo contrario, se consideran todas las bases de conocimiento disponibles. Por defecto, se devuelven un máximo de 10 fragmentos de documento con una puntuación inferior a un umbral de 2. Opcionalmente, se puede especificar un umbral diferente mediante el parámetro " threshold ".

Puede utilizar estas herramientas a través de la interfaz MCP.

La herramienta retrieve_knowledge realiza una búsqueda semántica mediante un índice FAISS. Este índice se actualiza automáticamente al iniciar el servidor o al modificar un archivo de una base de conocimiento.

La salida de la herramienta retrieve_knowledge es una cadena con formato Markdown con la siguiente estructura:

## Semantic Search Results **Result 1:** [Content of the most similar chunk] **Source:** ```json { "source": "[Path to the file containing the chunk]" } ``` --- **Result 2:** [Content of the second most similar chunk] **Source:** ```json { "source": "[Path to the file containing the chunk]" } ``` > **Disclaimer:** The provided results might not all be relevant. Please cross-check the relevance of the information.

Cada resultado incluye el contenido del fragmento más similar, el archivo de origen y una puntuación de similitud.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Proporciona herramientas para enumerar y recuperar contenido de diferentes bases de conocimiento utilizando capacidades de búsqueda semántica.

  1. Setup Instructions
    1. Usage
      ID: n0p6v0o0a4