Gitea拉取请求审查服务器

一个用于审查Gitea拉取请求的模型上下文协议(MCP)服务器,支持列出PR、获取差异、添加评论和管理标签等功能。

  • by Saravanan-Madhesh
  • C#
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 Saravanan-Madhesh/GiteaMCPServer

使用说明

Gitea MCP服务器

用于审查Gitea拉取请求的模型上下文协议(MCP)服务器。

快速开始

1.构建服务器

dotnet build

2.设置环境变量

  • 生成具有读/写访问权限的gitea私有令牌。
  • 在环境变量(GITEA_BASE_URL、GITEA_token)中添加令牌和根链接

[或]

# Set your Gitea instance URL (without trailing slash)
$env:GITEA_BASE_URL = "https://your-gitea-instance.com"

# Set your Gitea personal access token (with repo read/write permissions)
$env:GITEA_TOKEN = "your-token-here"

3.运行手动测试

直接使用PowerShell测试服务器:

# Navigate to project directory
cd d:\Projects\GiteaMcpServer

# Run the test script
.\test-mcp.ps1

可用工具

工具

服务器通过MCP公开以下工具 tools.list / tools.call.

  • list_pull_requests --在存储库中列出拉取请求。

    • 参数: owner (字符串,可选), repo (字符串,可选), repository (字符串,可选,“所有者/仓库”), state (字符串,默认“打开”), summary (bool,默认为true), per_page (int,默认值50), base_url (字符串,可选)。
  • get_pull_request_diff --获取PR的统一差异。

    • 参数: owner (字符串), repo (字符串), pr_number (整数), base_url (字符串,可选)。
  • get_pull_request_description --返回PR title 和 description。如果PR正文为空,则返回作者的第一条评论。

    • 参数: owner (字符串), repo (字符串), pr_number (整数), base_url (字符串,可选)。
  • add_pull_request_comment --在PR中添加一般性评论(问题评论)。

    • 参数: owner (字符串), repo (字符串), pr_number (整数), body (字符串), base_url (字符串,可选)。
  • add_pull_request_inline_comment --在特定文件和行中添加内联代码审查注释。如果Gitea实例不支持内联PR注释,服务器将退回到发布包含文件和行上下文的问题注释。

    • 参数: owner, repo, pr_number, body, path, line (均为必填项);可选的 position, commit_id, base_url.
  • manage_pull_request_labels --添加、删除或替换PR(问题)上的标签。

    • 参数: owner, repo, pr_number (必填); add_labels (字符串数组), remove_labels (字符串数组), set_labels (字符串数组), base_url (可选)。
  • list_org_labels --列出为组织或存储库定义的标签(在更新PR时用于选择标签)。

    • 参数: owner (组织/所有者,必填),可选 repo (string)列出回购标签, base_url (可选)。
  • create_branch --在存储库中创建分支(从基本分支或默认分支)。

    • 参数: owner, repo, new_branch (必填);可选的 base_branch, base_url.
  • commit_files --将一个或多个文件提交到分支。每个文件都必须提供 path 和 content (UTF-8纯文本);服务器将创建或更新文件。

    • 参数: owner, repo, branch, commit_message, files (对象数组 path + content), base_url (可选)。

将这些工具一起使用,可以检查PR、发布建议(内联或一般注释)、修改标签、创建分支和推送小补丁提交,以便审查建议的修复。

MCP客户端的配置

Claude桌面配置

添加到您的Claude Desktop配置文件(%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "gitea": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "d:\\Projects\\GiteaMcpServer\\GiteaMcpServer.csproj"
      ],
      "env": {
        "GITEA_BASE_URL": "https://your-gitea-instance.com",
        "GITEA_TOKEN": "your-token-here"
      }
    }
  }
}

Code Studio/Cline配置

查看文档 .帮助

  • 在本地计算机上构建并部署项目,采用exe路径。
  • 在codestudio聊天->设置->MCP服务器->自定义服务器->+添加自定义服务器
  • 粘贴。.\GiteaMcpServer\bin\debug\GiteaMcpServer.exe,命名服务器。 将生成以下文件。
{
	"servers": {
		"Gitea_MCP_server": {
			"type": "stdio",
			"command": "D:\\MCPServer\\GiteaMCPServer\\GiteaMCPServer2_0\\bin\\Debug\\net10.0\\GiteaMCPServer2_0.exe",
			"args": []
		}
	},
	"inputs": []
}

测试技巧

  1. 检查环境变量:确保 GITEA_BASE_URL 和 GITEA_TOKEN 设置正确
  2. 验证令牌权限:您的令牌需要读取权限才能列出PR和差异,需要写入权限才能发表评论
  3. 检查Gitea API版本:此服务器使用Gitea v1.x API进行测试
  4. 监控日志:服务器日志写入stderr,并在MCP客户端日志中可见

故障排除

  • “未设置GITEA_BASE_URL”:未配置环境变量
  • PR列表为空:检查存储库名称、令牌权限或PR状态筛选器
  • 401/403错误:令牌无效或缺少所需权限
  • 连接错误:验证GITEA_BASE_URL是否正确且可访问