LingYiProject MCP 服务端
使用说明(Markdown格式)
-
项目简介 LingYiProject 的 MCP 服务端实现了一个用于 LLM 客户端的后端框架,核心职责包括托管与管理资源(Resources)、注册与执行工具(Tools),以及定义与渲染 Prompt 模板(Prompts)。服务器通过 MCP 的理念实现工具调度、记忆管理及对话渲染等能力,便于与本地或云端大模型进行标准化的上下文服务交互。
-
主要功能点
- 动态注册与管理 MCP 服务:支持通过清单自动发现并注册 MCP 服务与其工具集。
- MCP 任务调度与执行:提供调度器,按优先级执行工具调用,支持重试、状态追踪和结果回调。
- 工具调用与路由:统一管理跨服务的工具调用,支持通过 MCP 管理器进行分发。
- 资源与记忆管理:包含对 Neo4j 记忆库的连接、查询、记忆提取与记忆写入等功能模块。
- Prompts 与对话渲染:系统提示、关键词提取、意图分析、生成回复等模块,形成端到端的对话处理链路。
- 多端交互与 HTTP/API 服务:通过 FastAPI 提供若干 MCP 服务端接口,便于 MCP 客户端进行请求与获取状态。
- 开发友好与扩展性:代码结构设计为可扩展的 MCP 服务框架,支持未来的代理、Agent、Crawl4AI 等子模块的整合。
-
安装步骤
- 确认环境
- Python 3.10+(建议使用虚拟环境)
- 依赖项包含:FastAPI、Uvicorn、Neo4j 驱动、Litellm/OpenAI 客户端、Crawl4AI(可选)等,具体依赖请参照项目的 requirements 配置。
- 下载与准备
- 获取仓库源码并进入根目录。
- 根据需要配置外部服务:Neo4j(GRAG/知识图谱)、本地模型服务(如 Ollama 等)等。
- 配置
- 修改或拷贝 config.json,按你的环境设置参数(API、MCP 服务端端口、Neo4j 连接、记忆服务等)。
- 启动 MCP 服务器
- 运行入口:将启动入口指向 mcpserver.mcp_server,默认实现中在主入口处通过 Python 模块执行启动逻辑。
- 启动示例(由服务器实现负责入口): 启动命令将会是: python -m mcpserver.mcp_server 注:具体端口与配置可在 config.json 中调整,启动后服务器将加载 MCP 服务、调度器和相关组件。
- 确认环境
-
服务器配置(面向 MCP 客户端的配置示例) 该配置用于 MCP 客户端在连接和对接 MCP 服务器时的注册信息。请注意这是给 MCP 客户端使用的连接描述,非源代码实现。示例如下: { "server_name": "LingYi_MCP_Server", "command": "python", "args": ["-m", "mcpserver.mcp_server"], "description": "LingYi 项目的 MCP 服务器,利用动态注册与调度实现跨服务的工具调用与记忆管理。", "notes": "启动后客户端即可通过 MCP 注册中心与服务器进行交互,进行工具调用、资源查询、记忆管理等。" }
-
基本使用方法
- 启动后快速接入
- 在服务器可达的环境中执行上述启动命令,确保依赖和外部服务就绪。
- 通过 MCP 客户端向 /schedule(或等效入口)发送请求,包含 query、tool_calls 等字段以触发任务调度与工具执行。
- 任务与状态
- 服务器提供调度状态接口,可查询当前活动任务、完成任务等统计信息。
- 服务扩展
- MCP 服务通过 manifest、Registry 机制实现动态注册与工具暴露,方便新增工具或代理服务。
- 记忆与知识图谱
- 通过 Neo4j 记忆系统与内存图谱工具,可以在对话中进行记忆提取、查询与更新。
- 启动后快速接入
-
进一步信息
- MCP 服务器端落地的核心组件包括:MCPManager、MCPScheduler、MCP Registry、Agent/Manifest 系统,以及基于 FastAPI 的接口层。
- 通过动态注册、工具调用以及记忆图谱的组合,提供一个端到端的 MCP 后端能力集合,供 LLM 客户端进行上下文提供、功能扩展与对话管理。