Aira MCP Server 使用说明

项目简介

Aira MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它通过标准化的 MCP 协议,为 LLM 客户端提供与 Git 仓库交互的能力。该服务器主要用于辅助开发者进行版本控制操作,特别是规范化 Git 提交信息和简化 Git 工作流管理。

主要功能点

  • 规范化提交信息生成: 支持生成符合 Conventional Commits 规范的提交信息,提高项目维护性和可读性。
  • Gitflow 工作流支持: 内置 Gitflow 工作流,简化初始化和日常分支管理操作。
  • Git 状态查询: 可以获取 Git 仓库的当前状态,方便开发者了解代码变更情况。
  • 分支管理: 支持创建、合并和列出 Git 分支,方便进行分支操作。

安装步骤

  1. 安装依赖: 在项目根目录下运行以下命令安装项目依赖。
    npm install
  2. 构建项目: 运行以下命令构建项目,生成可执行的服务器代码。
    npm run build

服务器配置

要将 Aira MCP Server 集成到 MCP 客户端,您需要在客户端的 MCP 服务器配置中添加以下信息。以下是一个 JSON 格式的配置示例,您需要根据实际情况修改 'command' 和 'args' 中的路径。

{
  "mcpServers": {
    "aira": {
      "command": "node",  // 启动服务器的命令,这里使用 Node.js 运行时
      "args": ["/path/to/aira-mcp-server/build/index.js"] // 启动命令的参数,指向构建后的服务器入口文件 index.js。请将 "/path/to/aira-mcp-server" 替换为 Aira MCP Server 在您本地文件系统中的实际路径。
    }
  }
}

配置说明:

  • 'server name': 'aira' - 服务器名称,可以自定义,用于在 MCP 客户端中标识和引用该服务器。
  • 'command': 'node' - 运行服务器程序所使用的命令。由于该服务器是 Node.js 应用,因此使用 'node' 命令。
  • 'args': '["/path/to/aira-mcp-server/build/index.js"]' - 传递给 'command' 的参数,用于指定服务器程序的入口文件路径。请务必将 '/path/to/aira-mcp-server' 替换为服务器代码在您本地文件系统中的实际绝对路径。 例如,如果您的 'aira-mcp-server' 仓库位于用户主目录下的 'projects' 文件夹中,则路径可能类似于 '/Users/yourusername/projects/aira-mcp-server/build/index.js' (macOS/Linux) 或 'C:\Users\YourUsername\projects\aira-mcp-server\build\index.js' (Windows)。

基本使用方法

  1. 启动服务器: 配置完成后,在 MCP 客户端中启动名为 'aira' 的 MCP 服务器。服务器将在后台运行,并通过 Stdio (标准输入输出) 与客户端通信。

  2. 列出可用工具: 客户端可以发送 'ListToolsRequest' 请求到 Aira MCP Server,以获取服务器提供的工具列表及其描述和输入参数Schema。

  3. 调用工具: 客户端可以使用 'CallToolRequest' 请求来调用服务器提供的工具。目前,Aira MCP Server 提供了以下工具:

    • 'get_status': 获取 Git 仓库状态。需要提供 'path' 参数,指定 Git 仓库的绝对路径。
    • 'create_commit': 创建并执行 Git 提交。需要提供以下参数:
      • 'file': 要提交的文件路径 (一次只能提交一个文件)。
      • 'path': Git 仓库的绝对路径。
      • 'type': 提交类型 (例如:feat, fix, docs, style, refactor, perf, test, chore)。
      • 'emoji': 用于提交信息的 Emoji 表情符号。
      • 'title': 提交标题。
      • 'body' (可选): 提交正文。
      • 'footer' (可选): 提交脚注。
      • 'language' (可选): 提交信息语言 (ja/en,默认为 ja)。
      • 'issueNumber' (可选): GitHub Issue 编号。

    客户端需要根据工具的 'inputSchema' 构造 'CallToolRequest' 的参数。服务器将执行相应的 Git 操作,并通过 JSON-RPC 响应返回结果。

示例: 使用 'get_status' 工具 假设您想获取位于 '/path/to/your/git/repo' 的 Git 仓库状态,您可以构造如下的 'CallToolRequest' 请求 (具体请求格式取决于您的 MCP 客户端):

{
  "method": "call_tool",
  "params": {
    "name": "get_status",
    "arguments": {
      "path": "/path/to/your/git/repo"
    }
  },
  "id": "unique-request-id"
}

服务器将返回包含 Git 状态信息的 JSON 响应。

示例: 使用 'create_commit' 工具 假设您想为文件 'src/index.ts' 创建一个 feature 类型的提交,您可以构造如下的 'CallToolRequest' 请求 (具体请求格式取决于您的 MCP 客户端):

{
  "method": "call_tool",
  "params": {
    "name": "create_commit",
    "arguments": {
      "file": "src/index.ts",
      "path": "/path/to/your/git/repo",
      "type": "feat",
      "emoji": "✨",
      "title": "Implement new feature X",
      "body": "This commit introduces feature X to improve functionality.",
      "language": "en"
    }
  },
  "id": "another-unique-request-id"
}

服务器将执行提交操作,并返回包含提交结果的 JSON 响应。

请参考 MCP 客户端的文档,了解如何配置和使用 MCP 服务器,以及如何发送和接收 MCP 请求和响应。

信息

分类

开发者工具