Skip to main content
Glama
j5ik2o

Shared Knowledge MCP Server

by j5ik2o

共享知识 MCP 服务器

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

特征

  • 一个通用知识库可供多个人工智能助手使用

  • 使用 RAG 进行高精度信息检索

  • 使用 TypeScript 的类型安全实现

  • 支持多种向量存储(HNSWLib、Chroma、Pinecone、Milvus)

  • 通过抽象接口实现扩展

Related MCP server: Roam Research MCP Server

安装

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/j5ik2o/shared-knowledge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server