使用说明

项目简介

TPC Server (Thoughts, Plans, Changelog Server) 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专注于支持AI团队在软件开发过程中的协作和知识管理。它通过结构化的方式记录团队的想法 (Thoughts)计划 (Plans)变更日志 (Changelog),帮助团队跟踪决策过程、协调任务和管理项目进度。

主要功能点

  • 结构化协作:
    • 记录设计决策 ('Thoughts')、任务协调 ('Plans') 和开发进度 ('Changelog')。
    • 支持计划的依赖关系管理,适用于复杂的开发流程。
    • 标记设计决策中的不确定性。
  • 性能优化:
    • 使用异步 SQLAlchemy 2.0 和连接池,提高数据访问效率。
    • 采用时间排序的 UUID (UUID7) 确保时间追踪的准确性。
    • 具备查询缓存机制,提升常用数据获取速度。
  • 开发者友好:
    • 完全兼容 MCP 接口标准,方便集成 MCP 客户端。
    • 提供 REST-like 资源端点,便于数据访问和管理。
    • 使用 Pydantic 进行全面的数据验证,保证数据质量。

安装步骤

  1. 克隆仓库

    git clone https://github.com/suttonwilliamd/tpc-server.git
    cd tpc-server
  2. 安装依赖

    pip install -r requirements.txt

服务器配置

TPC Server 可以通过 Uvicorn 启动。以下是 MCP 客户端连接 TPC Server 的服务器配置信息(JSON 格式):

{
  "server name": "TPC Server",
  "command": "uvicorn",
  "args": [
    "main:mcp",  // main.py 文件中的 mcp 实例
    "--reload",  // 启用热重载,方便开发时修改代码自动重启 (生产环境建议移除)
    "--port",
    "8000"     // 指定服务器端口为 8000
  ]
}

配置参数说明:

  • '"server name"': 服务器名称,设置为 "TPC Server"。
  • '"command"': 启动服务器的命令,这里使用 "uvicorn" (需要已安装)。
  • '"args"': 传递给 'uvicorn' 命令的参数列表:
    • '"main:mcp"': 指定 Uvicorn 运行 'main.py' 文件中的 'mcp' 实例。
    • '"--reload"': 启用代码热重载,在开发环境下非常有用,修改代码后服务器会自动重启,生产环境不建议使用
    • '"--port"': 指定服务器监听的端口。
    • '"8000"': 设置服务器端口为 8000。

启动服务器:

在项目根目录下,可以直接运行以下命令启动 TPC Server (开发环境,带热重载):

uvicorn main:mcp --reload --port 8000

生产环境启动命令 (移除 '--reload'):

uvicorn main:mcp --port 8000

基本使用方法

TPC Server 提供了 Tools (工具) 和 Resources (资源) 两种类型的 MCP 接口。

  • Tools (工具): 用于执行操作,例如创建 'Thoughts', 'Plans', 'Changelog'。

    • 'create_thought': 创建新的想法记录,可以关联到计划和标记不确定性。
    • 'bulk_create_thoughts': 批量创建多个想法记录。
    • 'create_plan': 创建新的计划任务,可以设置依赖关系和状态。
    • 'log_change': 记录变更日志,关联到计划和相关的想法。
    • 'invalidate_caches': 手动清理服务器缓存。
  • Resources (资源): 用于获取数据,例如查询 'Thoughts', 'Plans', 'Changelog'。

    • 'tpc://thoughts': 获取所有想法记录,支持分页查询。
    • 'tpc://thoughts/{thought_id}': 根据 ID 获取特定想法记录。
    • 'tpc://plans': 获取所有计划任务,支持分页查询,并包含依赖关系信息。
    • 'tpc://plans/{plan_id}': 根据 ID 获取特定计划任务,包含依赖关系信息。
    • 'tpc://changelog': 获取所有变更日志,支持分页查询,并包含关联的想法 ID。
    • 'tpc://changelog/{change_id}': 根据 ID 获取特定变更日志,包含关联的想法 ID。

与 MCP 客户端交互:

MCP 客户端需要配置上述服务器信息,并使用 MCP 协议与 TPC Server 进行通信,调用 Tools 执行操作或访问 Resources 获取数据。 具体调用方式请参考 MCP 客户端的文档和 MCP 协议规范。

示例 (MCP 客户端调用 'create_thought' Tool):

MCP 客户端需要构造符合 JSON-RPC 规范的请求,发送到 TPC Server。 例如,调用 'create_thought' Tool 的请求可能如下 (简化示例):

{
  "jsonrpc": "2.0",
  "method": "create_thought",
  "params": {
    "content": "Example thought content",
    "plan_id": "pl_some_plan_id",
    "uncertainty_flag": true
  },
  "id": "request_id_1"
}

TPC Server 会处理该请求,并将结果以 JSON-RPC 响应的形式返回给客户端。

总结

TPC Server 提供了一个结构化的后端服务,用于管理软件开发过程中的关键信息,并通过 MCP 协议与客户端进行交互,是构建基于 LLM 的软件开发辅助工具的有效后端选择。

信息

分类

开发者工具