context-use MCP 服务端实现

使用说明(Markdown)

  • 项目简介

    • 该仓库实现了一个 MCP 风格的后端服务器,用于向 LLM 客户端提供资源数据、可执行工具以及上下文提示相关的接口。服务器通过一个已有的上下文/内存存储和一个轻量级的 LLM 客户端来工作,能将内存、工具等能力暴露给客户端使用。
  • 主要功能点

    • 资源与提示暴露:通过 MCP 客户端可读取资源(如记忆、 Memories),以及调用系统内置工具完成数据管理、记忆操作等。
    • 工具注册与执行:通过 ContextUse 的上下文对象生成内存相关工具,并在 MCP 服务器启动时将这些工具注册给客户端,供 LLM 调用。
    • 与 PostgreSQL 存储的集成(Full pipeline 需要 PostgreSQL):在需要持久化记忆和查询的场景中,服务器可与 PostgreSQL 存储配合使用。
    • JSON-RPC 风格通信:服务器层遵循 MCP 的请求/响应模式,便于与 Claude Desktop、Cursor 等 MCP 客户端对接。
    • 支持多传输协议:默认通过 stdio 与本地客户端对接,也可通过 streamable-http 等方式暴露为 HTTP 服务,方便远程客户端接入。
  • 安装步骤

    • 先准备 Python 环境,推荐使用虚拟环境。
    • 安装并启用 MCP 服务所需的扩展组件(通过工具命令安装):
      • uv sync --extra mcp-use(安装用于 MCP 服务端的扩展)
    • 配置存储(如 PostgreSQL)和本地存储路径(按需使用 memory 模式或 postgres 模式)。
    • 启动 MCP 服务端:
      • 通过命令行运行 python -m context_use.ext.mcp_use.run
      • 传输参数可选:--transport stdio(标准输入输出模式,适合本地客户端)或 --transport streamable-http(HTTP 传输,适合远程客户端)。若使用 HTTP 方式,请按需要指定 --host 与 --port。
  • 服务器配置(MCP 客户端需要的最小启动信息,JSON 格式,包含服务器名称、启动命令与参数的示例)

    • server 名称:context-use
    • 启动命令:python
    • 启动参数:["-m", "context_use.ext.mcp_use.run", "--transport", "stdio"]
    • 说明:该配置用于在标准输入输出模式运行 MCP 服务器,客户端可通过 MCP 进行 JSON-RPC 交互。若要使用 HTTP 传输,请将 transport 设置为 "streamable-http" 并在服务器端暴露的主机/端口上对接。
  • 基本使用方法

      1. 先确保数据库(如果使用 PostgreSQL)和本地存储目录就绪。
      1. 启动 MCP 服务端:运行 python -m context_use.ext.mcp_use.run,默认将以 streamable-http 模式启动(如需 stdio,传入 --transport stdio)。
      1. 在 MCP 客户端(如 Claude Desktop、Cursor 等)中添加一个 MCP 服务器配置,应用服务器名 context-use,启动命令与参数如上所示(客户端无需实现服务器端逻辑,只需要连接到服务器进程)。
      1. 客户端启动后,服务器将暴露资源、工具等能力,允许 LLM 调用外部功能、查询记忆和执行相关任务。
      1. 如遇到 PostgreSQL、内存管线等的设置问题,请参照 ContextUse 的配置说明进行逐步配置,确保服务端能正确连接存储和 LLM 客户端。
  • 额外注意

    • MCP 服务端需要以一个完整的 ContextUse 上下文(storage、store、llm_client)来运行,确保服务器能够注册工具并对外暴露。
    • 服务器默认名称和版本在 server.py 中定义,若需要自定义,请在创建服务器时传入不同的 name 与 version 参数。

服务器信息