Shared Knowledge MCP Server

by j5ik2o
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Required for running the Weaviate vector database option, with included scripts for managing the Docker-based Weaviate environment.

  • Provides access to Git-related information, including commit message formats and conventions through the knowledge base search functionality.

  • Enables indexing and searching of Markdown (.md, .mdx) files, allowing AI assistants to retrieve information from documentation stored in Markdown format.

共享知识 MCP 服务器

这是一个知识库 MCP 服务器,可与各种 AI 助手(CLINE、Cursor、Windsurf、Claude Desktop)通用。利用检索增强生成 (RAG) 可以实现高效的信息检索和利用。在多个 AI 助手工具之间共享知识库,以提供一致的信息访问。

特征

  • 一个通用知识库可供多个人工智能助手使用
  • 使用 RAG 进行高精度信息检索
  • 使用 TypeScript 的类型安全实现
  • 支持多种向量存储(HNSWLib、Chroma、Pinecone、Milvus)
  • 通过抽象接口实现扩展

安装

git clone https://github.com/yourusername/shared-knowledge-mcp.git cd shared-knowledge-mcp npm install

环境

MCP 服务器设置被添加到每个 AI 助手的配置文件中。

VSCode(用于 CLINE/Cursor)

~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

{ "mcpServers": { "shared-knowledge-base": { "command": "node", "args": ["/path/to/shared-knowledge-mcp/dist/index.js"], "env": { "KNOWLEDGE_BASE_PATH": "/path/to/your/rules", "OPENAI_API_KEY": "your-openai-api-key", "SIMILARITY_THRESHOLD": "0.7", "CHUNK_SIZE": "1000", "CHUNK_OVERLAP": "200", "VECTOR_STORE_TYPE": "hnswlib" } } } }

使用 Pinecone 的示例

{ "mcpServers": { "shared-knowledge-base": { "command": "node", "args": ["/path/to/shared-knowledge-mcp/dist/index.js"], "env": { "KNOWLEDGE_BASE_PATH": "/path/to/your/rules", "OPENAI_API_KEY": "your-openai-api-key", "VECTOR_STORE_TYPE": "pinecone", "VECTOR_STORE_CONFIG": "{\"apiKey\":\"your-pinecone-api-key\",\"environment\":\"your-environment\",\"index\":\"your-index-name\"}" } } } }

克劳德桌面

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

使用 HNSWLib 的示例(默认)

{ "mcpServers": { "shared-knowledge-base": { "command": "node", "args": ["/path/to/shared-knowledge-mcp/dist/index.js"], "env": { "KNOWLEDGE_BASE_PATH": "/path/to/your/docs", "OPENAI_API_KEY": "your-openai-api-key", "SIMILARITY_THRESHOLD": "0.7", "CHUNK_SIZE": "1000", "CHUNK_OVERLAP": "200", "VECTOR_STORE_TYPE": "hnswlib", "VECTOR_STORE_CONFIG": "{}" }, "disabled": false, "autoApprove": [] } } }

Weaviate 使用示例

{ "mcpServers": { "shared-knowledge-base": { "command": "node", "args": ["/path/to/shared-knowledge-mcp/dist/index.js"], "env": { "KNOWLEDGE_BASE_PATH": "/path/to/your/docs", "OPENAI_API_KEY": "your-openai-api-key", "SIMILARITY_THRESHOLD": "0.7", "CHUNK_SIZE": "1000", "CHUNK_OVERLAP": "200", "VECTOR_STORE_TYPE": "weaviate", "VECTOR_STORE_CONFIG": "{\"url\":\"http://localhost:8080\",\"className\":\"Document\",\"textKey\":\"content\"}" }, "disabled": false, "autoApprove": [] } } }

注意:如果您正在使用 Weaviate,则必须事先启动 Weaviate 服务器。您可以使用以下命令启动它:

./start-weaviate.sh

发展

启动开发服务器

npm run dev

建造

npm run build

生产运行

npm start

可用工具

在知识库中搜索信息。

搜索请求

interface SearchRequest { // 検索クエリ(必須) query: string; // 返す結果の最大数(デフォルト: 5) limit?: number; // 検索のコンテキスト(オプション) context?: string; // フィルタリングオプション(オプション) filter?: { // ドキュメントの種類でフィルタリング(例: ["markdown", "code"]) documentTypes?: string[]; // ソースパスのパターンでフィルタリング(例: "*.md") sourcePattern?: string; }; // 結果に含める情報(オプション) include?: { metadata?: boolean; // メタデータを含める summary?: boolean; // 要約を生成 keywords?: boolean; // キーワードを抽出 relevance?: boolean; // 関連性の説明を生成 }; }

使用示例

基本搜索:

const result = await callTool("rag_search", { query: "コミットメッセージのフォーマット", limit: 3 });

高级搜索:

const result = await callTool("rag_search", { query: "コミットメッセージのフォーマット", context: "Gitの使い方について調査中", filter: { documentTypes: ["markdown"], sourcePattern: "git-*.md" }, include: { summary: true, keywords: true, relevance: true } });

搜索结果

interface SearchResult { // 検索クエリに関連する文書の内容 content: string; // 類似度スコア(0-1) score: number; // ソースファイルのパス source: string; // 位置情報 startLine?: number; // 開始行 endLine?: number; // 終了行 startColumn?: number; // 開始桁 endColumn?: number; // 終了桁 // ドキュメントの種類(例: "markdown", "code", "text") documentType?: string; // 追加情報(include オプションで指定した場合のみ) summary?: string; // コンテンツの要約 keywords?: string[]; // 関連キーワード relevance?: string; // 関連性の説明 metadata?: Record<string, unknown>; // メタデータ }

响应示例

{ "results": [ { "content": "# コミットメッセージのフォーマット\n\n以下の形式でコミットメッセージを記述してください:\n\n```\n<type>(<scope>): <subject>\n\n<body>\n\n<footer>\n```\n\n...", "score": 0.92, "source": "/path/to/rules/git-conventions.md", "startLine": 1, "endLine": 10, "startColumn": 1, "endColumn": 35, "documentType": "markdown", "summary": "コミットメッセージのフォーマットについての説明文書", "keywords": ["commit", "message", "format", "type", "scope"], "relevance": "このドキュメントは検索クエリ \"コミットメッセージのフォーマット\" に関連する情報を含んでいます。類似度スコア: 0.92" } ] }

这些增强的搜索功能将使 LLM 能够更准确、更高效地处理信息。位置、文档类型、摘要和关键词等附加信息有助于 LLM 更好地理解和适当地利用搜索结果。

结构

  1. 启动时,它会读取指定目录中的Markdown文件(.md,.mdx)和文本文件(.txt)。
  2. 将文档拆分成块并使用 OpenAI API 进行矢量化
  3. 使用选定的向量存储创建向量索引(默认值:HNSWLib)
  4. 返回与搜索查询高度相似的文档

支持的向量存储

  • HNSWLib :存储在本地文件系统上的快速向量存储(默认)
  • Chroma :一个开源矢量数据库
  • Pinecone :托管矢量数据库服务(需要 API 密钥)
  • Milvus :大型向量搜索引擎
  • Weaviate :模式优先的矢量数据库(需要 Docker)

每个向量存储都通过抽象接口公开,从而可以根据需要在它们之间轻松切换。

如何导航 Vector Store 环境

HNSWLib(默认)

HNSWLib 将向量存储保存在本地文件系统上,因此不需要特殊配置。

矢量存储重建:

./rebuild-vector-store-hnsw.sh

威维特

要使用 Weaviate,您需要 Docker。

  1. 启动 Weaviate 环境:
./start-weaviate.sh
  1. 矢量存储重建:
./rebuild-vector-store-weaviate.sh
  1. 检查 Weaviate 的状态:
curl http://localhost:8080/v1/.well-known/ready
  1. 停止 Weaviate 环境:
docker-compose down
  1. 彻底删除您的 Weaviate 数据(仅在必要时):
docker-compose down -v

Weaviate 配置在docker-compose.yml文件中进行管理。默认情况下,应用以下设置:

  • 端口:8080
  • 身份验证:启用匿名访问
  • 矢量化模块:无(使用外部填充)
  • 数据存储:Docker 卷( weaviate_data

配置选项

环境变量解释默认值
知识库路径知识库路径(必填)-
OPENAI_API_密钥OpenAI API 密钥(必需)-
相似度阈值搜索的相似度分数阈值(0-1)0.7
块大小分割文本的块大小1000
块重叠块重叠大小200
向量存储类型要使用的矢量存储类型(“hnswlib”、“chroma”、“pinecone”、“milvus”)。“hnswlib”
VECTOR_STORE_CONFIG向量存储配置(JSON字符串){}

执照

国际学习中心

贡献

  1. 创建功能分支( git checkout -b feature/amazing-feature
  2. 提交更改( git commit -m 'Add some amazing feature'
  3. 推送到分支( git push origin feature/amazing-feature
  4. 创建拉取请求
-
security - not tested
F
license - not found
-
quality - not tested

该服务器使人工智能助手(CLINE、Cursor、Windsurf、Claude Desktop)能够通过检索增强生成 (RAG) 共享通用知识库,从而跨多种工具提供一致的信息访问。

  1. 特徴
    1. インストール
      1. 設定
        1. VSCode (CLINE/Cursor用)
        2. Pineconeを使用する例
        3. Claude Desktop
      2. 開発
        1. 開発用サーバーの起動
        2. ビルド
        3. 本番環境での実行
      3. 使用可能なツール
        1. rag_search
      4. 仕組み
        1. サポートされているベクトルストア
        2. ベクトルストア環境の操作方法
      5. 設定オプション
        1. ライセンス
          1. 貢献
            ID: ggj8lu8t4i