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 等子模块的整合。
  • 安装步骤

    1. 确认环境
      • Python 3.10+(建议使用虚拟环境)
      • 依赖项包含:FastAPI、Uvicorn、Neo4j 驱动、Litellm/OpenAI 客户端、Crawl4AI(可选)等,具体依赖请参照项目的 requirements 配置。
    2. 下载与准备
      • 获取仓库源码并进入根目录。
      • 根据需要配置外部服务:Neo4j(GRAG/知识图谱)、本地模型服务(如 Ollama 等)等。
    3. 配置
      • 修改或拷贝 config.json,按你的环境设置参数(API、MCP 服务端端口、Neo4j 连接、记忆服务等)。
    4. 启动 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 客户端进行上下文提供、功能扩展与对话管理。

服务器信息