News Digest MCP Server
使用说明内容(Markdown格式)
-
项目简介
- 该仓库包含一个基于 MCP(Model Context Protocol)的服务器实现,核心在于通过标准化的 JSON-RPC 交互,向 LLM 客户端提供工具能力、资源管理与对话上下文处理能力。具体实现集中在 newsroom/src/mcp_server.py,提供初始化、工具列表、工具调用以及写入 selections.json 的功能,并对输入进行模式校验与日志输出。
-
主要功能点
- 处理 MCP 协议的关键方法:支持 initialize、tools/list、tools/call 等消息类型,使用 JSON-RPC 风格进行响应或发送通知。
- 工具执行与写入:实现 write_selections 工具,校验传入的 selections 是否符合预定义的 JSON 架构(使用 JSON Schema),如果通过则将 selections 写入 DATA_DIR 指定的位置的 selections.json,并返回操作结果文本。
- 结构化输出与日志:对操作过程输出简明日志,便于调试与追踪异常。
- 数据与路径依赖:使用 DATA_DIR 指定的路径来写入 selections.json,便于与 Claude 流程的其他组件进行耦合。
- 客户端与服务器分离:服务器端只提供 MCP 服务端能力,客户端需要通过 MCP 配置启动并与服务器建立通信。
-
安装步骤
- 需要的运行环境:Python 3.x。
- 依赖安装(示例):安装 jsonschema 库以支持输入校验。
- 运行方式:直接运行 newsroom/src/mcp_server.py(需要在合适的工作目录执行,使 DATA_DIR 路径生效)。
- 测试与示例:仓库中包含针对 MCP 服务器的单元测试,建议在开发环境中先执行测试以确认行为符合预期。
-
服务器配置(MCP 客户端使用的启动信息) 说明:MCP 客户端在与 MCP 服务器对接时,需要一个 JSON 配置描述服务器的启动信息。以下信息用于描述服务器端的运行逻辑,帮助客户端发起初始化、列出工具、执行工具调用等请求。
serverName: "news-digest-mcp" command: "python3" args: ["-u", "newsroom/src/mcp_server.py"]
注释与说明:
- serverName(服务器名称)用于标识 MCP 服务器实例,便于在客户端管理多服务器连接。
- command(启动命令)为执行 MCP 服务器的程序,Python3 为实现语言。
- args(启动参数)中 -u 表示以无缓冲模式运行,确保输出能即时返回给 MCP 客户端;后面的路径指定要执行的脚本位置。
- 备注:MCP 客户端并不需要额外的代码,只需按照上述字段在配置中描述服务器启动信息,实际通信仍通过标准输入输出进行。服务器端将处理输入的 MCP 请求并输出相应的 JSON-RPC 响应或通知。
-
基本使用方法
- 启动服务器:按照上述服务器配置在运行环境中启动 MCP 服务器进程(例如将 command 与 args 配置到客户端的 MCP 启动配置中)。
- 交互方式:客户端通过标准输入发送 MCP 请求行,服务器通过标准输出返回响应。支持 initialize、tools/list、tools/call 等请求,服务器会在需要时写入 selections.json。
- 测试与验证:可以参考仓库中的测试用例,模拟初始化、获取工具列表以及对 write_selections 的调用,验证输出 JSON 的结构和写文件行为。