Poiesis MCP Server
使用说明(Markdown)
- 项目简介
- Poiesis 是一个以 MCP 2.0 标准为基础的后端服务器,旨在为 AI Agent 提供结构化的上下文信息和功能。它管理资源、注册并执行工具,以及定义和渲染提示模板,供 LLM 客户端在推理和执行阶段调用。
- 主要功能点(通俗易懂)
- MCP 核心协议支持:实现初始化、列出工具、执行工具、列出资源、读取资源、列出并获取提示等 JSON-RPC 请求/响应流程。
- 资源、工具与提示的模块化注册:内置核心工具与资源,支持按模块动态注册、启用/禁用,便于扩展。
- 模块化扩展机制:通过模块提供者注册工具、资源、提示,并在目标项目中启用对应模块。
- 身份认证与访问控制:通过 Bearer Token、OAuth 令牌等方式鉴权,且可按项目成员与角色控制访问。
- HTTP 传输与服务器端推送:支持可流式传输的 HTTP 端口(如 SSE),以及 JSON-RPC 响应与错误编码。
- 数据与对象模型:覆盖 项目、Epic、Story、Task、Artifact、依赖关系等核心对象,提供一致的格式化输出。
- 开发工具与示例命令:提供 Artisan 命令、Seed 数据、测试与演示数据,方便本地开发与演练。
- 安装步骤
- 克隆仓库并安装依赖
- 使用 composer install 安装依赖
- 复制环境配置并生成应用密钥
- 复制 .env.example 为 .env,配置数据库等参数
- 生成应用密钥
- 数据库与迁移
- 运行 migrations 并可选性执行种子数据
- 启动服务器
- 使用 php artisan serve 启动本地开发服务器,或者在生产环境使用合适的 Web 服务器进行部署
- 生成并使用 Agent 令牌
- 使用 php artisan artisan:token:create --name="Agent" --user-id=1 生成 Bearer 令牌用于 MCP 请求鉴权
- MCP 端点与传输
- MCP 请求入口: POST /mcp,JSON-RPC 请求体中包含 jsonrpc、method(如 initialize、tools/list、tools/call、resources/list、resources/read、prompts/list、prompts/get)等字段
- 可选服务器端事件流: GET /mcp 提供服务端事件流,用于推送通知
- 服务器配置(MCP 客户端需要的配置示例说明,JSON 格式,便于客户端启动配置阅读)
- server_name: Poiesis MCP Server
- command: php
- args: ["artisan","serve"] // 启动 Laravel 自带服务器的常用命令
- 启动参数注释说明:
- 该配置用于 MCP 客户端读取服务器的启动指令与基本信息,便于在客户端侧对接与自动化测试使用
- 具体应用中可按实际部署环境调整工作方式(如容器化、端口映射、环境变量等)
- 运行与连接要点说明:
- 客户端需要提供服务器的名称与启动命令信息,以及连接的地址与鉴权方式(Bearer Token)
- MCP 请求的目标端点为部署后的服务器地址下的 /mcp 路径,HTTP 请求头中携带 Authorization: Bearer <token>
- 基本使用方法(简要操作流程)
- 获取 Bearer Token
- 通过管理员/用户创建 Token 的命令生成,放入 Authorization 请求头中
- 发送 MCP 请求
- 以 POST /mcp 的方式发送 JSON-RPC 请求,例如 initialize、tools/list、resources/list 等
- 使用工具与资源
- 工具分发给客户端时,客户端可通过 tools/list 获取工具描述并通过 tools/call 调用具体工具
- 资源通过 resources/list/reads 提供数据,Prompts 通过 prompts/list/get 提供指引
- 模块化扩展
- 启用模块后,相关工具/资源将出现在工具清单中,供 MCP 客户端调用
- 安全与权限
- Bearer Token 进行鉴权,按项目成员与角色进行访问控制,确保仅授权的代理可以操作
- 重要注意
- 服务端实现包含核心 MCP 路由、JSON-RPC 编解码、错误处理、工具/资源/提示的注册与调用逻辑,具备可运行的服务器端代码。
- 本实现支持模块化扩展、会话管理、以及基于项目的访问控制,符合 MCP 2.0 的核心要求。