关于 Milestone by Ouroboros Apps
Milestone 是供自由职业者使用的项目里程碑 MCP 服务,保存已批准的里程碑、交付物和验收标准,供 AI 助手查询。只有满足已保存的验收标准,才能声明里程碑完成或下一笔款项已释放。
主要功能
- 01读取已批准的里程碑
- 02保存验收标准与交付物
- 03记录工作项和标准达成情况
- 04提出并批准里程碑变更
适用场景
- 01核对项目里程碑的完成条件
- 02确认交付物是否符合约定
- 03依据验收标准核实付款释放状态
MCP 相关
向 MCP 客户端提供里程碑读取和管理工具,支持 Streamable HTTP 与 OAuth,也可通过 stdio 运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://milestone-continuity2.vercel.app/mcpclaude mcp add --transport http lahutchins91-milestone https://milestone-continuity2.vercel.app/mcp{"mcpServers":{"lahutchins91-milestone":{"type":"http","url":"https://milestone-continuity2.vercel.app/mcp"}}}在 Cursor 中打开{"servers":{"lahutchins91-milestone":{"type":"http","url":"https://milestone-continuity2.vercel.app/mcp"}}}在 VS Code 中打开{"mcpServers":{"lahutchins91-milestone":{"type":"http","url":"https://milestone-continuity2.vercel.app/mcp"}}}{"mcpServers":{"lahutchins91-milestone":{"serverUrl":"https://milestone-continuity2.vercel.app/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
15| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| offset | integer | 否 |
详细介绍
Milestone
Milestone 保存自由职业者已批准的里程碑定义和完成标准,让助手在回答前读取这些记录。除非已满足保存的验收标准,否则助手不能说某个里程碑已完成,也不能说下一笔款项已放款。助手不能凭空添加额外交付物,也不能将未保存的工作标记为已完成。
它支持 ChatGPT、Claude、Gemini、Grok 和 Cursor,以及任何支持 Streamable HTTP 和 OAuth 的其他 MCP 客户端。它并非仅适用于 ChatGPT 的插件。
当助手打开 OAuth 时,请使用你的 Milestone 账户登录。请勿将 API 密钥或密码粘贴到标头中。Milestone 支持动态客户端注册:将客户端 ID 和密钥留空。/.well-known/oauth-protected-resource/mcp 上的受保护资源元数据会将客户端指向 OAuth 颁发方,由其注册客户端。
使用 Milestone 工具需要 Pro 或有效的试用期。新订阅包含 14 天试用期。本页面未列出价格。结账时会显示计费周期和付款条款。
要自托管,请运行服务器并使用你配置的基础 URL。默认 MCP 地址为 http://127.0.0.1:3000/mcp。
托管服务
- MCP 服务 URL:
https://milestone-continuity2.vercel.app/mcp(Streamable HTTP,OAuth 登录) - 文档:https://ouroborosapps.com/docs/milestone
- 状态:早期访问。将此 URL 粘贴到 Claude、Cursor、Grok 或 ChatGPT 开发者模式中。
- 注册表名称:
io.github.LAHutchins91/milestone
助手可以做什么
批准连接后,服务器会提供以下工具:
- list_milestone_sets
- open_milestone_set
- read_milestone_set
- define_milestone
- save_acceptance_criterion
- save_deliverable
- save_work_item
- record_criterion_met
- declare_milestone_complete
- declare_next_payment_released
- mark_work_done
- write_client_wording
- approve_milestones
- suggest_milestone_change
- accept_milestone_change
read_milestone_set 是助手回答前应调用的读取工具。它包含里程碑定义、说明完成标准的验收条件、已保存的交付物和工作,以及助手可以告知客户的内容。草稿定义不构成已批准的承诺。建议更改里程碑不会更改记录。批准里程碑后,除非该里程碑的每项已保存验收标准都已满足,否则 declare_milestone_complete 会拒绝将其判定为已完成,declare_next_payment_released 会拒绝声称下一笔款项已放款。save_deliverable 会拒绝添加额外交付物,mark_work_done 会拒绝标记未保存的工作。这些新增内容必须先通过 suggest_milestone_change 提出,再通过 accept_milestone_change 接受,并且只有在你明确批准更改后才会生效。
只有在你和宿主都允许的情况下,助手才会调用这些工具。
连接
Cursor,配置文件位于 ~/.cursor/mcp.json 或项目中的 .cursor/mcp.json:
{
"mcpServers": {
"milestone": {
"url": "http://127.0.0.1:3000/mcp"
}
}
}
请勿添加 headers 块。Cursor 会注册客户端并打开登录页面。
Claude Code:
claude mcp add --transport http milestone http://127.0.0.1:3000/mcp
请勿传递 Authorization 标头。其他客户端使用相同地址,选择 OAuth,并将客户端 ID 和密钥留空。ChatGPT、Claude、Gemini、Grok 和 Cursor 的连接步骤请参阅 /connect 上的连接页面。
此服务器的注册表元数据位于 server.json(io.github.LAHutchins91/milestone)中。其中的公开远程 MCP URL 为 https://milestone-continuity2.vercel.app/mcp。
运行
npm install
npm test
npm run typecheck
npm run build
npm start
当标准输入是终端时,Milestone 会在端口 3000 上提供 Streamable HTTP。当标准输入不是终端时,它会通过 stdio 使用 MCP 通信,同时仍会开放 HTTP 端口。在 stdio 模式下,日志会输出到 stderr,以免与协议内容混杂。
记录会持久保存在 JSON 文件中。默认路径为 ~/.milestone/milestone.json。设置 MILESTONE_DATA_PATH 可更改文件路径。一个服务进程独占该文件。不要将其指向其他产品的数据文件。
OAuth 使用与 Supabase 授权服务相同的方案,支持动态客户端注册。请在服务进程上设置以下变量,而不是在 MCP 标头中设置:
APP_BASE_URL(默认值为http://localhost:3000)SUPABASE_URLSUPABASE_ANON_KEYSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETSTRIPE_PRICE_MONTHLY和STRIPE_PRICE_YEARLY(Stripe 目录 ID,而非产品价格)OPENAI_APPS_CHALLENGE(通过/.well-known/openai-apps-challenge提供的纯文本令牌;未设置时,该路径会返回 404)
除发现功能外,其他工具调用都需要已登录账户,且该账户的订阅状态必须为 active 或 trialing。
了解更多 Ouroboros 信息:https://ouroborosapps.com
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。