Gitea MCP服务器

Gitea MCP服务器是一个用于与自托管Gitea实例交互的MCP服务器实现,提供仓库管理和问题跟踪功能。

  • by datapilot-canada
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 datapilot-canada/gitea-mcp

使用说明

Datapilot加拿大-Gitea MCP服务器

用于与Gitea交互的MCP服务器实现。

特性

  • 连接到自托管的Gitea实例
  • 存储库管理(列表、创建、删除、搜索、更新)
  • 问题跟踪(创建、搜索、更新、评论、标签)

设置

  1. 安装依赖关系:

    pip install -r requirements.txt
    

    (注意:您可能需要创建一个 requirements.txt 或安装 mcp, httpx, python-dotenv 手动)

    或者如果使用 uv:

    uv add mcp httpx python-dotenv
    
  2. 配置: 复制 .env.example 到 .env 并填写您的Gitea详细信息:

    cp .env.example .env
    

    编辑 .env:

    GITEA_MCP_API_URL=https://your-gitea-instance.com
    GITEA_ACCESS_TOKEN=your_access_token_here
    

使用MCP客户端(例如Claude Desktop、VS Code)

将服务器添加到MCP配置中。示例配置见 mcp_config.json.

要手动运行,请执行以下操作:

python src/datapilot_gitea_mcp/server.py

Docker使用

您还可以使用Docker运行此服务器。

  1. 塑造形象:

    docker build -t datapilotgiteamcp .
    
  2. 运行容器: 由于MCP使用stdio进行通信,您需要以交互方式运行容器并传递环境变量。

    docker run -i --rm \
      -e GITEA_MCP_API_URL=https://your-gitea-instance.com \
      -e GITEA_ACCESS_TOKEN=your_access_token_here \
      datapilotgiteamcp
    

    注: 在MCP客户端(如Claude Desktop)中配置此功能时,请使用 docker 配置中的命令。

    示例 claude_desktop_config.json:

    {
      "mcpServers": {
        "gitea": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "GITEA_MCP_API_URL=https://your-gitea-instance.com",
            "-e",
            "GITEA_ACCESS_TOKEN=your_token",
            "datapilotgiteamcp"
          ]
        }
      }
    }
    

使用自签名证书

如果你的Gitea实例使用自签名证书,你可以将证书挂载到容器中,并配置环境变量以信任它。

  1. 安装证书: 使用 -v 标记将证书文件装载到容器中。

  2. 设置环境变量: 集 SSL_CERT_FILE 和 REQUESTS_CA_BUNDLE 指向已安装的证书。

    docker run -i --rm \
      -e GITEA_MCP_API_URL=https://your-gitea-instance.com \
      -e GITEA_ACCESS_TOKEN=your_token \
      -v /path/to/your/cert.crt:/usr/local/share/ca-certificates/custom-cert.crt \
      -e SSL_CERT_FILE=/usr/local/share/ca-certificates/custom-cert.crt \
      -e REQUESTS_CA_BUNDLE=/usr/local/share/ca-certificates/custom-cert.crt \
      datapilotgiteamcp
    

远程部署

您可以在远程计算机上运行此MCP服务器,并通过SSH安全地连接到它。如果你想让服务器在中央主机上运行或更靠近你的Gitea实例,这很有用。

1.准备远程主机

确保远程计算机安装了Docker,并且用户有权运行容器。 将Docker镜像传输到远程主机:

# Save image locally and load it on the remote host
docker save datapilotgiteamcp | ssh user@your-remote-host "docker load"

2.配置VS代码(本地)

使用 gitea-docker-ssh 配置已提供 mcp_config.json.

重要提示:

  • SSH密钥: 您必须设置基于SSH密钥的身份验证(无密码登录),才能无缝工作。
  • 环境变量: 由于该进程是远程运行的,因此必须在 args 列出或挂载 .env 上存在的文件 远程 文件系统。

故障排除

“请求URL缺少‘http://’或‘https://’协议”

此错误意味着 GITEA_MCP_API_URL 环境变量未设置或无效。

  • 如果通过Docker运行: 确保正确传递环境变量。
    • 如果使用 --env-file .env,确保 .env 文件存在 在运行命令的目录中 (或VS代码工作区根),并包含 GITEA_MCP_API_URL.
    • 如果从其他工作区运行,您可能需要提供到 .env 文件在 mcp.json 配置:
      "--env-file", "C:/path/to/your/project/.env"
      
  • 如果在本地运行: 确保 .env 位于项目根目录或与相同的目录中 server.py.

快速样品

创建问题

在“您的存储库”存储库中创建一个新问题,以跟踪新功能的实现。为其添加“增强”标签。