自动化任务服务器

一个基于模型上下文协议(MCP)的服务器,通过智能任务自动化简化日常操作并提高工作效率,适用于代码合并、版本发布等场景。

  • by PassionZale
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 PassionZale/mcp-server-routine-bot

使用说明

MCP Server Routine Bot

一个基于模型上下文协议(MCP)的服务器,旨在通过智能任务自动化来简化日常操作并提高工作效率。

⚠️ 注意:此项目正在积极开发中。功能可能会发生变化,某些功能可能不完整或不稳定。

概述

MCP-Server-Routine-Bot 基于模型上下文协议(MCP)框架构建,是我个人用于学习 MCP 的项目,内置的工具旨在为我处理日常工作中重复的操作,例如代码合并、版本发布等。

主要特性

  • 任务自动化:自动处理重复的日常操作
  • 工具集成:原生支持 Jenkins 和 GitLab 操作
  • 智能工作流:为各种场景提供可定制的自动化流程
  • 网络代理支持:内置企业级代理配置功能
  • 实时监控:跟踪和管理自动化进程
  • 热重载:支持 HRM 的开发友好架构

可用工具

Jenkins 工具

工具名称 描述 参数
jenkins_job_list 获取 Jenkins 中的所有作业列表 无
jenkins_job_build 触发指定 Jenkins 作业的构建 jobName (必需)

GitLab 工具

工具名称 描述 参数
gitlab_create_merge_request 在 GitLab 中创建合并请求 projectId, projectName, sourceBranch, targetBranch
gitlab_merge_merge_request 在 GitLab 中合并指定的合并请求 projectId (必需), mergeRequestIid (必需)

使用示例

Jenkins 操作

# 获取作业列表
jenkins_job_list

# 构建指定作业
jenkins_job_build({"jobName": "my-project"})

GitLab 操作

# 创建合并请求
gitlab_create_merge_request({
  "projectName": "my-project",
  "sourceBranch": "feature-branch",
  "targetBranch": "main"
})

# 合并指定的合并请求(使用创建时返回的 IID)
gitlab_merge_merge_request({
  "projectId": 123,
  "mergeRequestIid": 456
})

快速开始

配置

使用您的平台凭证配置服务器:

{
  "mcpServers": {
    "mcp-server-routine-bot": {
      "command": "npx",
      "args": ["-y", "@code-sugar/mcp-server-routine-bot@latest"],
      "env": {
        "JENKINS_BASE_URL": "jenkins_base_url",
        "JENKINS_USERNAME": "jenkins_username",
        "JENKINS_ACCESS_TOKEN": "jenkins_access_token",
        "GITLAB_BASE_URL": "gitlab_base_url",
        "GITLAB_ACCESS_TOKEN": "gitlab_access_token",
        "HTTP_PROXY": "http://proxy.example.com:8080",
        "HTTPS_PROXY": "https://proxy.example.com:8080"
      }
    }
  }
}

环境变量

变量名 必需 默认值 说明
JENKINS_BASE_URL ✅ - Jenkins 服务器基础地址
JENKINS_USERNAME ✅ - Jenkins 用户名
JENKINS_ACCESS_TOKEN ✅ - Jenkins API 访问令牌
GITLAB_BASE_URL ✅ - GitLab API 基础地址
GITLAB_ACCESS_TOKEN ✅ - GitLab API 访问令牌
HTTP_PROXY ❌ - HTTP 代理服务器地址
HTTPS_PROXY ❌ - HTTPS 代理服务器地址

代理配置说明

# 基本代理配置
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=https://proxy.company.com:8080

# 带认证的代理配置
export HTTP_PROXY=http://username:password@proxy.company.com:8080
export HTTPS_PROXY=https://username:password@proxy.company.com:8080

代理优先级:HTTPS_PROXY > https_proxy > HTTP_PROXY > http_proxy

开发指南

环境要求

  • Node.js >= 18
  • npm 或 yarn

安装设置

  1. 克隆仓库:

    git clone https://github.com/PassionZale/mcp-server-routine-bot.git
    cd mcp-server-routine-bot
    
  2. 安装依赖:

    npm install
    
  3. 创建环境配置:

    cp .env.example .env
    # 编辑 .env 文件填入凭证信息
    

开发模式

方式 1:MCP Inspector(无热重载)

用于调试和检查:

  1. 启动开发服务器:

    npm run inspector
    
  2. 配置 MCP 客户端:

    {
      "mcpServers": {
        "local-mcp-server-routine-bot": {
          "command": "node",
          "args": ["/path/to/your/mcp-server-routine-bot/dist/index.js"],
          "env": {
            "JENKINS_BASE_URL": "jenkins_base_url",
            "JENKINS_USERNAME": "jenkins_username",
            "JENKINS_ACCESS_TOKEN": "jenkins_access_token",
            "GITLAB_BASE_URL": "gitlab_base_url",
            "GITLAB_ACCESS_TOKEN": "gitlab_access_token",
            "HTTP_PROXY": "http://proxy.example.com:8080",
            "HTTPS_PROXY": "https://proxy.example.com:8080"
          }
        }
      }
    }
    

注意:

  • inspector 命令会自动从 .env 文件读取环境变量
  • 修改 src/index.ts 和 src/server.ts 需要手动重启服务器
  • 修改其他文件需要重新运行 inspector 命令

方式 2:Reloaderoo(支持热重载)

用于支持热重载的开发:

  1. 全局安装 reloaderoo:

    npm install -g reloaderoo
    
  2. 启动开发服务器:

    npm run build:watch
    
  3. 配置 MCP 客户端:

    {
      "mcpServers": {
        "dev-mcp-server-routine-bot": {
          "command": "reloaderoo",
          "args": [
            "proxy",
            "log-level",
            "debug",
            "--",
            "node",
            "/path/to/your/mcp-server-routine-bot/dist/index.js"
          ],
          "env": {
            "JENKINS_BASE_URL": "jenkins_base_url",
            "JENKINS_USERNAME": "jenkins_username",
            "JENKINS_ACCESS_TOKEN": "jenkins_access_token",
            "GITLAB_BASE_URL": "gitlab_base_url",
            "GITLAB_ACCESS_TOKEN": "gitlab_access_token",
            "HTTP_PROXY": "http://proxy.example.com:8080",
            "HTTPS_PROXY": "https://proxy.example.com:8080"
          }
        }
      }
    }
    

生产构建

npm run build

编译后的文件将在 dist/ 目录中。

故障排除

常见问题

  1. 服务器无响应:确保所有必需的环境变量都已设置
  2. 认证错误:验证访问令牌是否有效且具有适当权限
  3. 连接超时:检查到配置服务的网络连接
  4. 代理连接失败:验证代理 URL 格式正确且代理服务可访问

调试

通过设置日志级别启用调试日志:

# 使用 reloaderoo 时
reloaderoo proxy log-level debug -- node dist/index.js

贡献

  1. Fork 仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

许可证

本项目基于 MIT 许可证 - 查看 LICENSE 文件了解详情。

作者

Lei Zhang - @PassionZale

项目链接:https://github.com/PassionZale/mcp-server-routine-bot