mcpField
K
Knowledge MCP Server

Knowledge MCP Server

本地服务
github.com/scitara-cto记忆与知识075 周前更新

关于 Knowledge MCP Server

Knowledge MCP Server 是基于 dynamic-mcp-server 的知识库管理与查询 MCP 服务,面向需要接入文档知识的 AI 应用。它通过向量数据库处理文档,并支持按用户控制知识源的访问与共享。

主要功能

  1. 01文档分块与向量嵌入
  2. 02向量库语义检索
  3. 03知识源访问与共享控制
  4. 04动态注册知识工具
  5. 05OneDrive 文件摄取

适用场景

  1. 01将 OneDrive 文档导入知识源
  2. 02按语义查询知识源内容
  3. 03刷新知识源中的文档
  4. 04向其他用户共享知识源

MCP 相关

它向 MCP 客户端提供添加知识、搜索、使用及刷新知识源的工具。工具注册与共享由 dynamic-mcp-server 管理。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Knowledge MCP 服务

一个用于通过向量数据库管理和查询知识库的模型上下文协议(MCP)服务,基于 dynamic-mcp-server (DMS) 框架构建。

概述

Knowledge MCP 服务以 dynamic-mcp-server (DMS) 为核心,提供一个稳健、可扩展的平台,用于构建安全、了解用户且可动态扩展的 AI 工具服务。所有用户、工具和数据库管理均由 DMS 负责,并提供项目专属逻辑的扩展点(例如知识源、Microsoft 身份验证)。

架构

  • 核心集成: 使用 DMS 处理所有身份验证、用户管理、工具注册以及 MongoDB/Mongoose 连接管理。
  • 集中式数据库连接: 所有模型和存储库均使用 DMS 提供的共享 MongoDB 连接。
  • 用户与工具管理: 用户和工具模型与 DMS 保持一致,并通过子类扩展项目专属功能(参见 AppUserRepository)。
  • 自定义 HTTP 路由: 所有自定义路由(OAuth、健康检查等)均使用 DMS API(例如 addAuthHttpRoute)注册到 DMS 导出的 Express 服务上。
  • 可扩展性: 可通过子类扩展用户模型和存储库,也可使用 DMS 扩展点添加新工具或路由。

功能

  • 集成向量数据库,用于存储和查询嵌入向量
  • 文档处理流水线,用于导入内容
  • 文本分块和嵌入向量生成
  • 动态工具注册与管理(通过 DMS API)
  • 对知识源进行安全的访问控制和共享
  • 支持网站抓取和内容提取
  • 集成 MongoDB,用于存储元数据和向量

先决条件

  • Node.js 18 或更高版本
  • MongoDB Atlas M10 或更高规格的实例(用于向量搜索功能)
  • OpenAI API 密钥

安装

  1. 克隆代码库:

    git clone https://github.com/your-org/knowledge-mcp-server.git
    cd knowledge-mcp-server
    
  2. 安装依赖:

    npm install
    

配置

在项目根目录下创建 .env 文件,并添加以下变量:

# Server Configuration
PORT=4001
HOST=localhost

# MongoDB Configuration
MONGODB_URI=your_mongodb_connection_string

# OpenAI Configuration
OPENAI_API_KEY=your_openai_api_key

# Admin Bootstrapping (required by DMS)
[email protected]

运行服务

在开发模式下启动服务:

npm run dev

或在生产模式下启动:

npm start

注意: 服务通过 DMS 启动,所有自定义路由均注册到 DMS 导出的 Express 服务上。本地没有 Express 服务启动逻辑。

工具注册与共享

  • 所有工具注册和共享均通过 DMS API(addTool、共享端点等)管理。
  • 旧版工具注册逻辑已移除。
  • 根据需要按用户/会话注册工具,以支持动态扩展。

用户与访问模型

  • 用户对知识源的访问权限通过用户记录上的 applicationAuthorization.knowledge.owned 和 applicationAuthorization.knowledge.shared 字段管理。
  • 共享通过 DMS 共享模型和 API 处理,支持“读取”和“写入”访问级别。
  • 用户存储库扩展为 AppUserRepository,用于实现项目专属逻辑(例如自定义共享/访问方法)。

知识源管理

服务目前支持以下知识源类型:

  1. Microsoft OneDrive
    • 从 OneDrive 导入文件和文件夹
    • 支持多种文档格式(PDF、DOCX 等)
    • 需要集成 Microsoft Graph API

注意: 网站知识源支持(网页抓取、HTML 提取等)尚未实现,但计划在未来版本中推出。

扩展服务

  • 用户模型扩展: 继承 AppUserRepository,添加项目专属的用户逻辑或字段。
  • 自定义 HTTP 路由: 使用 DMS API 注册新路由(例如 addAuthHttpRoute)。
  • 工具注册: 使用 DMS 的 addTool 及相关 API 添加新工具。
  • 模型/存储库扩展: 对于自定义逻辑,优先选择继承或封装 DMS 存储库。

可用工具

服务提供以下工具:

1. 添加知识
  • 工具名称:add-knowledge
  • 用途:将新文档摄取并处理到知识源中
  • 功能:接受文档来源(URL、文本或文件上传),抓取并处理内容,将内容切分并嵌入向量数据库,然后与知识源关联
2. 搜索
  • 工具名称:search
  • 用途:查询特定知识源,获取相关信息
  • 功能:针对向量数据库进行语义搜索,返回带有元数据的相关文档片段,并支持筛选和排序
3. 使用知识源
  • 工具名称:use-knowledge-source
  • 用途:创建一个用于与特定知识源交互的新工具
  • 功能:生成新的工具定义,配置参数和约束,并支持动态注册工具
4. 刷新知识源
  • 工具名称:refresh-knowledge-source
  • 用途:通过重新摄取内容来刷新知识源
  • 功能:更新状态、清空向量存储、重新处理来源,并更新状态

访问控制与共享

  • 所有权: 用户拥有自己创建的知识源,并拥有完全访问权限。
  • 共享: 知识源可以与其他用户共享(“读取”或“写入”权限),并记录在 applicationAuthorization.knowledge.shared 中。

依赖项

该项目使用以下关键依赖项:

{
  "@llm-tools/embedjs": "latest",
  "@llm-tools/embedjs-mongodb": "latest",
  "@llm-tools/embedjs-openai": "latest",
  "@llm-tools/embedjs-loader-web": "latest",
  "mongodb": "latest",
  "dynamic-mcp-server": "github:scitara-cto/dynamic-mcp-server"
}

测试

  • 运行测试套件:
    npm test
    
  • 以监视模式运行测试:
    npm run test:watch
    
  • 类型检查:
    npm run typecheck
    
  • 模拟: 使用 DMS 文档中推荐的模拟策略和测试模式。测试应使用扩展后的存储库(例如,AppUserRepository)。

迁移状态

  • 除文档外,所有迁移和重构步骤均已完成。
  • 所有测试和构建均通过。
  • 代码库已完全符合新的 DMS 架构和存储库模型。

许可证

[您的许可证]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。