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" 并在服务器端暴露的主机/端口上对接。
-
基本使用方法
-
- 先确保数据库(如果使用 PostgreSQL)和本地存储目录就绪。
-
- 启动 MCP 服务端:运行 python -m context_use.ext.mcp_use.run,默认将以 streamable-http 模式启动(如需 stdio,传入 --transport stdio)。
-
- 在 MCP 客户端(如 Claude Desktop、Cursor 等)中添加一个 MCP 服务器配置,应用服务器名 context-use,启动命令与参数如上所示(客户端无需实现服务器端逻辑,只需要连接到服务器进程)。
-
- 客户端启动后,服务器将暴露资源、工具等能力,允许 LLM 调用外部功能、查询记忆和执行相关任务。
-
- 如遇到 PostgreSQL、内存管线等的设置问题,请参照 ContextUse 的配置说明进行逐步配置,确保服务端能正确连接存储和 LLM 客户端。
-
-
额外注意
- MCP 服务端需要以一个完整的 ContextUse 上下文(storage、store、llm_client)来运行,确保服务器能够注册工具并对外暴露。
- 服务器默认名称和版本在 server.py 中定义,若需要自定义,请在创建服务器时传入不同的 name 与 version 参数。