项目简介
Specifai MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专为 Specifai 项目设计,旨在与任何兼容 MCP 协议的 AI 工具集成和自动化。它作为一个工具无关的服务器,可以与任何支持 MCP 协议的工具协同工作。当前版本主要提供读取 Specifai 项目生成的所有文档的工具。
请注意: 该服务器目前处于实验阶段,功能和可用工具可能会随着开发迭代而变化和扩展。
主要功能点
- 资源访问: 提供多种工具,用于读取和访问 Specifai 项目生成的各类规范文档,例如业务需求文档 (BRD)、产品需求文档 (PRD)、非功能需求文档 (NFR)、用户界面需求文档 (UIR) 和业务流程文档 (BPD)。
- 文档检索: 支持根据 PRD 获取用户故事,根据用户故事获取任务,以及按 ID 精确查找任务。
- 项目路径管理: 允许设置和更改 Specifai 项目的根目录路径,方便服务器定位和加载规范文档。
- 全文搜索: 支持在所有规范文档中进行全文搜索,快速定位所需信息。
- 分页和筛选: 在获取文档列表时,支持分页 (limit, offset) 以及是否包含描述等选项,方便用户按需获取数据。
- 标准 MCP 协议: 遵循 Model Context Protocol,确保与各种 MCP 客户端的兼容性和互操作性。
安装步骤
-
安装 Node.js 和 npm (或 yarn/pnpm/bun 等): 确保你的开发环境中已安装 Node.js (>= 16.0.0) 和 npm (或其他你偏好的包管理器,如 yarn, pnpm, bun >= 1.0.0)。
-
使用 npx 安装 Specifai MCP Server: 打开终端,运行以下命令即可安装最新版本的 Specifai MCP Server:
npx --yes @presidio-dev/specifai-mcp-server@latest或者,你也可以安装特定版本,例如 1.2.3 版本:
npx --yes @presidio-dev/[email protected]这将会在你的项目中安装并运行 Specifai MCP Server。
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 Specifai MCP Server 建立连接。以下是使用 'npx' 启动最新版本 Specifai MCP Server 的配置信息 (JSON 格式):
{ "serverName": "Specifai MCP Server", "command": "npx", "args": ["--yes", "@presidio-dev/specifai-mcp-server@latest"] }
配置参数说明:
- '"serverName"': 服务器名称,可以自定义,用于在客户端标识服务器。
- '"command"': 启动服务器的命令,这里使用 'npx',表示使用 npm 包执行器。
- '"args"': 传递给 'npx' 命令的参数,'["--yes", "@presidio-dev/specifai-mcp-server@latest"]' 表示执行 '@presidio-dev/specifai-mcp-server@latest' 包,'--yes' 参数表示自动确认执行。
其他启动方式配置示例:
- 指定版本:
{ "serverName": "Specifai MCP Server", "command": "npx", "args": ["--yes", "@presidio-dev/[email protected]"] }
- 使用 bunx (如果使用 Bun 运行时):
{ "serverName": "Specifai MCP Server", "command": "bunx", "args": ["@presidio-dev/specifai-mcp-server@latest"] }
- 直接运行二进制文件 (假设 'specifai-mcp-server' 已添加到 PATH):
{ "serverName": "Specifai MCP Server", "command": "specifai-mcp-server", "args": [] }
项目路径配置:
Specifai MCP Server 需要知道 Specifai 项目的根目录路径才能加载规范文档。它支持以下两种方式配置项目路径:
-
'.specifai-path' 文件 (推荐): 在你的项目根目录下创建一个名为 '.specifai-path' 的文件,文件中写入 Specifai 项目根目录的绝对路径。服务器会自动读取该文件来确定项目路径。
-
'cwd' 参数 (工具调用时指定): 在调用工具时,可以通过 'cwd' 参数显式指定项目根目录的绝对路径。如果同时存在 '.specifai-path' 文件,'cwd' 参数将会覆盖 '.specifai-path' 文件中的路径。
基本使用方法
-
启动 Specifai MCP Server: 根据上述 "服务器配置" 部分,在 MCP 客户端中配置好服务器启动命令和参数后,启动 Specifai MCP Server。服务器默认通过标准输入/输出 (stdio) 与客户端通信。
-
在 MCP 客户端中使用工具: MCP 客户端连接到 Specifai MCP Server 后,可以列出服务器提供的工具 (例如 'get-brds', 'get-prds', 'get-user-stories' 等)。
-
调用工具并获取数据: 根据工具的输入参数要求,在 MCP 客户端中调用相应的工具,并传入必要的参数 (例如 'cwd' 指定项目路径,'prdId' 指定 PRD ID)。服务器会执行工具,并返回包含规范文档内容的 JSON-RPC 响应。
例如,使用 'get-brds' 工具获取业务需求文档 (BRD) 列表:
客户端调用 'get-brds' 工具,并传入 'cwd' 参数指定项目路径。服务器会读取指定项目路径下的 BRD 文档,并将文档列表以文本形式返回给客户端。客户端可以解析返回的文本内容,提取 BRD 的 ID、标题和描述等信息。
import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'; const transport = new StdioClientTransport({ command: 'npx', args: ['--yes', '@presidio-dev/specifai-mcp-server@latest'], }); const client = new Client({ name: 'example-client', version: '0.0.1', }); await client.connect(transport); const result = await client.callTool({ name: 'get-brds', arguments: { cwd: '/path/to/your/specifai/project', // 替换为你的 Specifai 项目路径 }, }); if (result.content) { for (const content of result.content as Array<any>) { if (content.type === 'text') { console.log(content.text); // 打印 BRD 文档列表 } } } await client.close();
注意: 使用前请确保你的 Specifai 项目已生成规范文档,并且服务器配置的项目路径指向正确的 Specifai 项目根目录。
信息
分类
AI与计算