项目简介

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 客户端的兼容性和互操作性。

安装步骤

  1. 安装 Node.js 和 npm (或 yarn/pnpm/bun 等): 确保你的开发环境中已安装 Node.js (>= 16.0.0) 和 npm (或其他你偏好的包管理器,如 yarn, pnpm, bun >= 1.0.0)。

  2. 使用 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 项目的根目录路径才能加载规范文档。它支持以下两种方式配置项目路径:

  1. '.specifai-path' 文件 (推荐): 在你的项目根目录下创建一个名为 '.specifai-path' 的文件,文件中写入 Specifai 项目根目录的绝对路径。服务器会自动读取该文件来确定项目路径。

  2. 'cwd' 参数 (工具调用时指定): 在调用工具时,可以通过 'cwd' 参数显式指定项目根目录的绝对路径。如果同时存在 '.specifai-path' 文件,'cwd' 参数将会覆盖 '.specifai-path' 文件中的路径。

基本使用方法

  1. 启动 Specifai MCP Server: 根据上述 "服务器配置" 部分,在 MCP 客户端中配置好服务器启动命令和参数后,启动 Specifai MCP Server。服务器默认通过标准输入/输出 (stdio) 与客户端通信。

  2. 在 MCP 客户端中使用工具: MCP 客户端连接到 Specifai MCP Server 后,可以列出服务器提供的工具 (例如 'get-brds', 'get-prds', 'get-user-stories' 等)。

  3. 调用工具并获取数据: 根据工具的输入参数要求,在 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与计算