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.

지식 기반 MCP 서버

이 MCP 서버는 다양한 지식 기반의 콘텐츠를 나열하고 검색하는 도구를 제공합니다.

설치 지침

이 지침에서는 시스템에 Node.js와 npm이 설치되어 있다고 가정합니다.

필수 조건

  • Node.js (버전 16 이상)
  • npm (노드 패키지 관리자)
  1. 저장소를 복제합니다.지엑스피1
  2. 종속성 설치:
    npm install
  3. 환경 변수 구성:
    • 서버에서는 HUGGINGFACE_API_KEY 환경 변수를 설정해야 합니다. 이 키는 Hugging Face Inference API의 API 키로, 지식 기반 콘텐츠의 임베딩을 생성하는 데 사용됩니다. Hugging Face 웹사이트( https://huggingface.co/ )에서 무료 API 키를 받으실 수 있습니다.
    • 서버를 사용하려면 KNOWLEDGE_BASES_ROOT_DIR 환경 변수를 설정해야 합니다. 이 변수는 지식 기반 하위 디렉터리가 있는 디렉터리를 지정합니다. 이 변수를 설정하지 않으면 기본값은 $HOME/knowledge_bases 입니다. 여기서 $HOME 현재 사용자의 홈 디렉터리입니다.
    • 서버는 FAISS 인덱스 경로를 지정하는 FAISS_INDEX_PATH 환경 변수를 지원합니다. 설정하지 않으면 기본적으로 $HOME/knowledge_bases/.faiss 가 사용됩니다.
    • 서버는 임베딩 생성에 사용할 Hugging Face 모델을 지정하는 HUGGINGFACE_MODEL_NAME 환경 변수를 지원합니다. 설정하지 않으면 기본적으로 sentence-transformers/all-MiniLM-L6-v2 가 사용됩니다.
    • 이러한 환경 변수는 .bashrc 또는 .zshrc 파일에서 설정하거나 MCP 설정에서 직접 설정할 수 있습니다.
  4. 서버를 빌드하세요:
    npm run build
  5. MCP 설정에 서버를 추가합니다.
    • /home/jean/.vscode-server/data/User/globalStorage/saoudrizwan.claude-dev/settings/ 에 있는 cline_mcp_settings.json 파일을 편집합니다.
    • 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." },
    • /path/to/knowledge-base-mcp-server 서버 디렉토리의 실제 경로로 바꾸세요.
    • /path/to/knowledge_bases 지식 기반 디렉토리의 실제 경로로 바꾸세요.
  6. 지식 기반 디렉토리를 만듭니다.
    • 각 지식 기반(예: company , it_support , onboarding )에 대해 KNOWLEDGE_BASES_ROOT_DIR 내에 하위 디렉토리를 만듭니다.
    • 지식 기반 콘텐츠가 포함된 텍스트 파일(예: .txt , .md )을 이러한 하위 디렉토리에 넣습니다.
  • 서버는 지정된 지식 기반 하위 디렉토리 내의 모든 텍스트 파일(예: .txt , .md )을 재귀적으로 읽습니다.
  • 서버는 숨겨진 파일과 디렉토리( . 으로 시작하는 파일과 디렉토리)를 건너뜁니다.
  • 서버는 각 파일에 대해 SHA256 해시값을 계산하여 숨겨진 .index 하위 디렉터리에 있는 동일한 이름의 파일에 저장합니다. 이 해시는 파일이 마지막 인덱싱 이후 수정되었는지 확인하는 데 사용됩니다.
  • 파일 내용은 langchain/text_splitterMarkdownTextSplitter 를 사용하여 청크로 분할됩니다.
  • 각 청크의 내용은 유사성 검색에 사용되는 FAISS 인덱스에 추가됩니다.
  • FAISS 색인은 서버 시작 시 자동으로 초기화됩니다. 지식 기반 파일의 변경 사항을 확인하고 그에 따라 색인을 업데이트합니다.

용법

서버는 두 가지 도구를 제공합니다.

  • list_knowledge_bases : 사용 가능한 지식 기반을 나열합니다.
  • retrieve_knowledge : 쿼리를 기반으로 지식 기반에서 유사한 청크를 검색합니다. 선택적으로, 지식 기반이 지정된 경우 해당 지식 기반만 검색하고, 그렇지 않은 경우 사용 가능한 모든 지식 기반을 고려합니다. 기본적으로 점수가 임계값 2 미만인 문서 청크는 최대 10개까지 반환됩니다. 선택적으로 threshold 매개변수를 사용하여 다른 임계값을 지정할 수 있습니다.

이러한 도구는 MCP 인터페이스를 통해 사용할 수 있습니다.

retrieve_knowledge 도구는 FAISS 색인을 사용하여 의미론적 검색을 수행합니다. 색인은 서버가 시작되거나 지식 베이스의 파일이 수정될 때 자동으로 업데이트됩니다.

retrieve_knowledge 도구의 출력은 다음과 같은 구조를 가진 마크다운 형식의 문자열입니다.

## 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.

각 결과에는 가장 유사한 청크의 내용, 소스 파일, 유사도 점수가 포함됩니다.

You must be authenticated.

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

의미 검색 기능을 사용하여 다양한 지식 기반의 콘텐츠를 나열하고 검색하는 도구를 제공합니다.

  1. Setup Instructions
    1. Usage
      ID: n0p6v0o0a4