CompText MCP Server

项目简介

CompText MCP Server 是一个面向大语言模型(LLM)的后端服务,按照 MCP(Model Context Protocol)规范实现对资源、工具和提示相关能力的托管、注册和执行。核心目标是以结构化、可扩展的方式向客户端提供上下文数据访问、外部功能调用和模板渲染能力,帮助降低令牌消耗并提升对话质量。

主要功能点

  • 资源与数据访问:通过 Notion 作为数据源,提供模块与条目的读取、筛选、检索等能力。
  • 工具注册与执行:定义可调用的工具(如列出模块、获取模块、执行检索等),LLM 客户端可通过 MCP 调用这些工具实现外部功能。
  • 提示/模板渲染:支持将查询结果和文档内容转换成易于消化的文本输出,便于在对话中展示。
  • 服务器端会话与性能指标:内置简单的性能监控、缓存清理与指标查询接口,帮助运维和调试。
  • 多传输模式与接口:通过 MCP 服务器框架,支持基于 stdin/stdout(stdio),以及对其他传输方式的适配(实现中将为不同客户端提供相应入口)。
  • 安全与鲁棒性:包含输入校验、错误处理和重试机制,确保对外接口的稳定性。

安装步骤

  1. 获取代码
    • 将仓库克隆到本地,或直接下载源码包。
  2. 安装依赖
    • 使用 Python 3.10+ 环境,安装所需依赖项(项目中列出的 requirements 文件及 setup 配置会负责安装)。建议使用虚拟环境来隔离依赖。
  3. 配置与环境变量
    • 设置 Notion API Token、Codex 数据库 ID 等所需的环境变量(如 NOTION_API_TOKEN、COMPTEXT_DATABASE_ID),确保 Notion 数据源可访问。
  4. 启动 MCP 服务器
    • 使用 MCP 客户端推荐的启动方式,通过 STDIO/WebSocket 等方式接入。服务端提供 main 入口,结合 MCP 服务器框架进行初始化。

服务器配置(给 MCP 客户端的连接信息)

请按以下 JSON 配置用以连接并启动 MCP 服务器。该信息用于 MCP 客户端在本地或远端启动并连接到 MCP 服务器。字段含义见注释,实际客户端不需要代码实现,仅需了解配置含义。

{ "server_name": "comptext-codex", "command": ["uvicorn"], "args": ["comptext_mcp.server:main", "--host", "0.0.0.0", "--port", "8000"] // 注释: // - server_name: MCP 服务器的名称,便于标识和日志关联 // - command: 启动服务器所执行的主命令(不含参数时以后续参数传递) // - args: 启动参数,包含模块入口、监听主机与端口等信息 // 运行后,客户端即可通过 MCP 协议与服务器进行资源读取、工具执行与提示渲染等交互 }

基本使用方法

  • 启动后连接:确保 MCP 客户端能够通过标准 MCP 流(如 STDIO)等传输方式连接服务器。
  • 调用工具:通过 MCP 注册的工具名称(如 list_modules、get_module、search、get_command、get_by_tag、get_by_type、get_statistics 等)进行调用,服务器将返回结构化文本输出或数据对象。
  • 获取资源与内容:通过模块与条目检索、Notion 页面内容读取等接口获取所需上下文信息。
  • 监控与管理:使用 /health、/metrics 等接口查看健康状态和性能指标,必要时执行缓存清理等维护操作。

注意事项

  • 服务器对外暴露的接口与工具在实现中依赖 Notion 数据源,需确保 Notion 令牌和数据库 ID 的有效性。
  • MCP 客户端与服务器之间的具体协商、传输格式会遵循 MCP 的标准 JSON-RPC 语义,确保请求/响应字段与类型的一致性。

服务器信息