CompText MCP 服务器

使用说明内容(Markdown格式)

使用目标

本 MCP 服务器实现的目标是为 MCP 客户端提供统一的后端能力:注册并托管工具、执行工具、以及初始化服务器能力对外声明。客户端通过 MCP 请求即可获取工具清单、调用指定工具并获取结果。

主要功能点

  • MCP 请求处理基础
    • 支持读取工具列表(tools/list)
    • 支持调用指定工具(tools/call)
    • 支持初始化能力声明(initialize)
  • 工具注册与执行
    • 自动从 Codex 的执行器中读取可用命令,注册为 MCP 工具
    • 按工具名称/模块组织,提供描述与输入结构
    • 执行工具时将命令及上下文传给执行器,返回执行结果
  • 会话与能力声明
    • initialize 响应中包含协议版本、服务器信息与能力概要
    • 能力集中体现在工具列表及执行能力的暴露
  • 设计与集成
    • 通过直接导入服务器对象并调用 handle_request 来响应 MCP 请求
    • 具备可嵌入式使用场景,便于在现有应用中作为后端服务

安装与运行

  • 依赖与环境
    • 该实现作为 Python 库组件使用,不一定附带独立 CLI;请在 Python 应用中直接导入并实例化服务
  • 运行方式(简述)
    • 以应用内嵌方式使用:创建 CompTextMCPServer 实例,通过 handle_request 处理 MCP 请求
    • 启动网络服务器(如需外部通信)需自行将 handle_request 封装为网络接口(当前实现中 start() 为占位/示例用途,未提供完整网络服务端实现)
  • 运行示例(概念性说明;非代码块)
    • 在应用中创建一个服务器实例
    • 调用服务器的 handle_request,传入方法名(如 tools/list、tools/call、initialize)和相应参数
    • 解析返回结果并将其作为 MCP 客户端的响应
    • 如需进一步扩展,可将服务器接入标准传输(如 stdio/SSE/WebSocket)以实现真实网络化 MCP 通信

服务器配置(示例性描述)

说明:以下配置用于说明 MCP 客户端如何与服务器对接。实际客户端无需依赖该段代码,仅需了解连接信息和可用方法。

{ "server_name": "CompText-MCP-Server", "start_command": "python -m comptext_mcp.server", "start_args": { "codex_dir": "codex", "transport": "stdio" }, "endpoints": [ "tools/list", "tools/call", "initialize" ], "notes": "该配置描述了服务器名称、启动方式、以及 MCP 客户端可访问的核心端点。实际运行时,请在应用中以库的方式初始化并通过 handle_request 进行交互。" }

基本使用方法

  • 将服务器集成到应用中:在应用启动阶段创建 CompTextMCPServer 实例,并将其作为后台服务注入到需要通过 MCP 协议交互的模块
  • 客户端交互流程:
    • 初始化:客户端发送 initialize 请求,服务端返回协议版本、服务器信息与能力声明
    • 列出工具:客户端发送 tools/list,请求服务器返回已注册的工具集合及描述
    • 调用工具:客户端发送 tools/call,请求携带工具名称以及参数上下文,服务器执行对应命令并返回单个或链式结果
  • 服务端输出与异常处理:服务器在执行过程中出现错误时返回 error 字段,调用方可据此处理

注意事项

  • 该实现偏向“做为库使用”的 MCP 服务器雏形,当前 start() 实现为简化占位,若需正式对外提供网络化 MCP 服务,需要在应用中补充网络层(如 WebSocket/RPC 框架)以接收 MCP 客户端请求并转发到 handle_request
  • 工具注册来源于 Codex 模块的执行器,确保在启动阶段已加载模块(模块需使用 registry 装饰器进行注册)

开发与扩展建议

  • 将 start() 实现为可选的网络传输适配层,支持 stdio/SSE/WebSocket 等 MCP 传输
  • 完善工具输入输出结构,支持更丰富的输入模式和并发执行
  • 增加权限/认证、会话管理等机制,提升并发环境中的安全性与鲁棒性

服务器信息