agileconfig-mcp-server

agileconfig-mcp-server

MCP server that exposes all AgileConfig RESTful APIs as tools, enabling AI assistants to manage configuration, applications, users, nodes, and more via natural language.

Category
访问服务器

README

AgileConfig MCP Server

npm version License: MIT Node.js

基于 AgileConfig 的 MCP (Model Context Protocol) 服务器。将 AgileConfig 配置中心的 全部 RESTful API 暴露为 MCP 工具,让你在 AI 工具中直接用自然语言管理配置中心。


目录


功能概览

本 MCP 服务器完整覆盖了 AgileConfig 的 9 大功能模块、36 个 MCP 工具,对应 AgileConfig 的全部 RESTful API:

模块 工具数 涵盖能力
📱 应用管理 5 创建、查看、编辑、删除应用
⚙️ 配置管理 11 配置增删改查、发布/下线、历史查看、版本回滚
🖥️ 节点管理 3 集群节点查看、添加、移除
👤 用户管理 7 用户 CRUD、登录、密码修改
🔐 权限管理 2 查看和设置用户的细粒度 RBAC 权限
📋 系统日志 1 按应用/类型/时间范围查询操作日志
🔌 客户端管理 2 查看已连接客户端、强制断开
🔍 服务发现 3 服务注册、查询、注销
⚙️ 系统设置 2 查看和更新系统级配置

核心特性

  • 🚀 完整 API 覆盖 — 实现了 AgileConfig 所有 RESTful API,无遗漏
  • 🌍 多环境支持 — 按 env 参数隔离 DEV/PROD 等环境;不设 env 时操作所有环境
  • 🔐 双认证模式 — Admin Basic Auth(管理操作)和 App Secret Basic Auth(客户端拉取配置)
  • 配置实时生效 — 发布后 AgileConfig 通过 WebSocket 实时推送至所有客户端
  • 📦 npx 零安装 — 发布到 npm 后,一行配置即可使用,无需克隆和编译
  • 🛡️ 错误处理完善 — 所有 API 调用均包含超时控制、异常捕获和结构化错误返回

在 AI 工具中使用

前提条件:Node.js >= 18,且有一个运行中的 AgileConfig 服务端。

Claude Code

编辑 ~/.claude/settings.json(全局)或项目根目录的 .claude/settings.json(项目级):

{
  "mcpServers": {
    "agileconfig": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "agileconfig-mcp-server"],
      "env": {
        "AGILECONFIG_URL": "http://your-agileconfig-server:5000",
        "AGILECONFIG_ADMIN_USERNAME": "admin",
        "AGILECONFIG_ADMIN_PASSWORD": "your-password",
        "AGILECONFIG_ENV": "DEV"
      }
    }
  }
}

重启 Claude Code 后,用自然语言操作配置中心:

"帮我看下 AgileConfig 上有哪些应用" "给 my-app 添加一个数据库连接字符串配置" "查看 my-app 的配置发布历史" "创建用户 tester,角色 NormalUser" "检查所有服务节点的在线状态" "把 my-app 的配置回滚到上一个版本"

Claude Desktop

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):

{
  "mcpServers": {
    "agileconfig": {
      "command": "npx",
      "args": ["-y", "agileconfig-mcp-server"],
      "env": {
        "AGILECONFIG_URL": "http://your-agileconfig-server:5000",
        "AGILECONFIG_ADMIN_USERNAME": "admin",
        "AGILECONFIG_ADMIN_PASSWORD": "your-password",
        "AGILECONFIG_ENV": "DEV"
      }
    }
  }
}

VS Code / Cursor

在 VS Code 的 mcp.json 或 Cursor 的 .cursor/mcp.json 中配置:

{
  "mcpServers": {
    "agileconfig": {
      "command": "npx",
      "args": ["-y", "agileconfig-mcp-server"],
      "env": {
        "AGILECONFIG_URL": "http://your-agileconfig-server:5000",
        "AGILECONFIG_ADMIN_USERNAME": "admin",
        "AGILECONFIG_ADMIN_PASSWORD": "your-password",
        "AGILECONFIG_ENV": "DEV"
      }
    }
  }
}

Windsurf

编辑 ~/.codeium/windsurf/mcp.json

{
  "mcpServers": {
    "agileconfig": {
      "command": "npx",
      "args": ["-y", "agileconfig-mcp-server"],
      "env": {
        "AGILECONFIG_URL": "http://your-agileconfig-server:5000",
        "AGILECONFIG_ADMIN_USERNAME": "admin",
        "AGILECONFIG_ADMIN_PASSWORD": "your-password"
      }
    }
  }
}

Gemini CLI

gemini mcp add agileconfig -- npx -y agileconfig-mcp-server

执行后 Gemini CLI 会使用当前 shell 的环境变量,请确保已设置:

export AGILECONFIG_URL=http://your-agileconfig-server:5000
export AGILECONFIG_ADMIN_USERNAME=admin
export AGILECONFIG_ADMIN_PASSWORD=your-password

Codex CLI

codex mcp add agileconfig -- npx -y agileconfig-mcp-server

AI 工具配置速查表

AI 工具 配置文件位置 配置方式
Claude Code ~/.claude/settings.json JSON 配置
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json JSON 配置
VS Code .vscode/mcp.json JSON 配置
Cursor .cursor/mcp.json JSON 配置
Windsurf ~/.codeium/windsurf/mcp.json JSON 配置
Gemini CLI gemini mcp add 命令
Codex CLI codex mcp add 命令

本地使用

如果你不想等待 npm 发布,或者需要二次开发,可以在本地克隆并使用。

环境准备

  • Node.js: >= 18(推荐 20+)
  • npm: >= 9
  • AgileConfig 服务端: 需要有一个运行中的 AgileConfig 实例

克隆 & 安装

# 进入你的工作目录
cd /path/to/your/workspace

# 克隆项目
git clone <repo-url> agile-confg-mcp
cd agile-confg-mcp

# 安装依赖
npm install

配置环境变量

# 从模板创建 .env
cp .env.example .env

编辑 .env 文件,填入你的 AgileConfig 服务端信息:

# AgileConfig 服务端地址
AGILECONFIG_URL=http://localhost:5000

# Admin 认证(用户名固定为 admin)
AGILECONFIG_ADMIN_USERNAME=admin
AGILECONFIG_ADMIN_PASSWORD=123456

# 请求超时(毫秒)
AGILECONFIG_TIMEOUT=30000

# 默认环境。留空或设为 "" 将操作所有环境
AGILECONFIG_ENV=DEV

编译 & 运行

# 编译 TypeScript → dist/
npm run build

# 直接启动服务器
npm start

启动后 MCP 服务器会通过 stdio(标准输入输出)与 AI 工具通信,日志输出到 stderr:

[AgileConfig MCP Server] 已启动
[AgileConfig MCP Server] 目标地址: http://localhost:5000
[AgileConfig MCP Server] 默认环境: DEV

使用 MCP Inspector 调试

MCP 官方提供了 Inspector 工具,可以直观地查看工具列表、测试工具调用、检查协议消息:

# 启动 Inspector(会自动打开浏览器)
npm run inspector

浏览器打开后:

  1. 左侧 Tools 面板 — 查看所有注册的 36 个工具及其参数 schema
  2. 点击工具名 — 在右侧填入参数,点击 "Run" 测试调用
  3. 底部 Console — 查看 JSON-RPC 请求和响应的原始报文

如果只想验证服务器能否正常启动(不打开浏览器):

# 直接经 stdio 启动,发送一个 list_tools 请求验证
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js

在 AI 工具中连接本地 MCP

使用本地路径代替 npx,在 AI 工具的 MCP 配置中指定为 node + 本地 dist/index.js 路径:

{
  "mcpServers": {
    "agileconfig": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/agile-confg-mcp/dist/index.js"],
      "env": {
        "AGILECONFIG_URL": "http://your-agileconfig-server:5000",
        "AGILECONFIG_ADMIN_USERNAME": "admin",
        "AGILECONFIG_ADMIN_PASSWORD": "your-password",
        "AGILECONFIG_ENV": "DEV"
      }
    }
  }
}

对比:npx 方式适合最终用户,无需克隆代码;本地 node 方式适合开发调试,修改代码后 npm run build 即可生效。


全部 MCP 工具列表

应用管理

工具名 说明 API
agileconfig_list_apps 获取所有应用列表 GET /api/app
agileconfig_get_app 根据 ID 获取单个应用详情 GET /api/app/{id}
agileconfig_create_app 创建新应用(名称/分组/密钥/继承等) POST /api/app
agileconfig_update_app 编辑应用信息 PUT /api/app/{id}
agileconfig_delete_app 删除应用(不可逆) DELETE /api/app/{id}

配置管理

工具名 说明 认证 API
agileconfig_get_published_configs 获取已发布配置(供客户端拉取) App Secret GET /api/config/app/{appId}
agileconfig_get_all_configs 获取所有配置(含编辑中未发布项) Admin GET /api/config
agileconfig_get_config 获取单个配置项详情 Admin GET /api/config/{id}
agileconfig_create_config 添加新配置项(键值对) Admin POST /api/config
agileconfig_update_config 修改配置项的值/分组/描述 Admin PUT /api/config/{id}
agileconfig_delete_config 删除配置项(软删除) Admin DELETE /api/config/{id}
agileconfig_publish_config 发布应用的全部待处理变更 Admin POST /api/app/publish
agileconfig_publish_single_config 上线单个配置项 Admin POST /api/config/publish/{id}
agileconfig_offline_config 下线单个配置项 Admin POST /api/config/offline/{id}
agileconfig_get_publish_history 查看应用的发布历史记录 Admin GET /api/app/Publish_History
agileconfig_rollback_config 回滚到指定历史版本 Admin POST /api/app/rollback

节点管理

工具名 说明 API
agileconfig_list_nodes 获取集群所有节点(含在线状态/心跳时间) GET /api/node
agileconfig_add_node 添加节点到集群 POST /api/node
agileconfig_delete_node 从集群移除节点 DELETE /api/node

用户管理

工具名 说明 API
agileconfig_list_users 获取所有用户列表 GET /api/user
agileconfig_get_user 获取单个用户详情 GET /api/user/{id}
agileconfig_create_user 创建用户(用户名/密码/角色/团队) POST /api/user
agileconfig_update_user 编辑用户(含冻结/解冻) PUT /api/user/{id}
agileconfig_delete_user 删除用户 DELETE /api/user/{id}
agileconfig_change_password 修改指定用户的密码 PUT /api/user/{id}/password
agileconfig_user_login 用户登录,返回 JWT Token POST /api/user/login

权限管理

工具名 说明 API
agileconfig_get_user_permissions 查看用户的所有权限 GET /api/user/{id}/permissions
agileconfig_set_user_permissions 设置用户的 RBAC 权限 PUT /api/user/{id}/permissions

系统日志

工具名 说明 API
agileconfig_get_syslogs 按应用/类型/时间范围查询操作日志 GET /api/syslog

客户端管理

工具名 说明 API
agileconfig_list_clients 查看已连接客户端(地址/心跳/标签) GET /api/client
agileconfig_disconnect_client 强制断开指定客户端 POST /api/client/disconnect

服务发现

工具名 说明 API
agileconfig_list_services 查看所有已注册服务及健康状态 GET /api/service
agileconfig_register_service 注册服务(含元数据) POST /api/service
agileconfig_unregister_service 注销服务 DELETE /api/service

系统设置

工具名 说明 API
agileconfig_get_settings 查看系统设置(CORS/JWT 等) GET /api/setting
agileconfig_update_settings 更新系统设置 PUT /api/setting

权限体系

AgileConfig 使用 RBAC(基于角色的访问控制),权限分为全局范围应用范围

权限 Key 说明
APP_ADD 添加应用
APP_EDIT 编辑应用
APP_DELETE 删除应用
APP_AUTH 应用授权管理
CONFIG_ADD 添加配置项
CONFIG_EDIT 编辑配置项
CONFIG_DELETE 删除配置项
CONFIG_PUBLISH 发布配置
CONFIG_OFFLINE 下线配置
NODE_ADD 添加节点
NODE_DELETE 移除节点
CLIENT_DISCONNECT 断开客户端连接
USER_ADD 创建用户
USER_EDIT 编辑用户
USER_DELETE 删除用户

权限范围:

  • GLOBAL — 全局权限,对所有资源生效
  • APP_{appId} — 仅对指定应用生效(例如 APP_my-app

使用示例

示例 1:配置管理全流程

用户: 帮我在 AgileConfig 中为 my-app 添加数据库连接配置

AI 执行流程:
──查看现有配置
  → agileconfig_get_all_configs(appId="my-app")
──添加配置项
  → agileconfig_create_config(
      appId="my-app",
      key="ConnectionStrings:Default",
      value="Server=prod-db;Database=main;User=sa",
      description="生产数据库连接字符串",
      env="DEV"
    )
──发布到客户端
  → agileconfig_publish_config(appId="my-app", env="DEV")

示例 2:运维排障

用户: 检查 AgileConfig 集群运行状态,看看有没有异常

AI 执行流程:
──检查节点健康
  → agileconfig_list_nodes()
──查看已连接客户端
  → agileconfig_list_clients()
──查看错误日志
  → agileconfig_get_syslogs(logType="Error", pageSize=20)
──汇总结果,告知用户节点/客户端/异常情况

示例 3:新成员入职 — 创建账号并授权

用户: 新同事 zhangsan 入职了,给他创建 AgileConfig 账号,让他管理 my-app 的配置

AI 执行流程:
──创建用户
  → agileconfig_create_user(
      userName="zhangsan",
      password="temp@123456",
      role="NormalUser"
    )
──分配权限(仅限 my-app 的配置管理权限)
  → agileconfig_set_user_permissions(
      userId="<返回的用户ID>",
      permissions='[
        {"functionKey":"CONFIG_ADD","appId":"my-app","enable":true},
        {"functionKey":"CONFIG_EDIT","appId":"my-app","enable":true},
        {"functionKey":"CONFIG_PUBLISH","appId":"my-app","enable":true}
      ]'
    )

示例 4:跨环境操作

用户: 把 DEV 环境的 my-app 配置复制到 PROD

AI 执行流程:
──读取 DEV 配置
  → agileconfig_get_published_configs(appId="my-app", appSecret="xxx", env="DEV")
──逐条在 PROD 创建
  → agileconfig_create_config(appId="my-app", key="...", value="...", env="PROD")
──发布 PROD 配置
  → agileconfig_publish_config(appId="my-app", env="PROD")

环境变量参考

变量名 必填 说明 默认值
AGILECONFIG_URL AgileConfig 服务端地址 http://localhost:5000
AGILECONFIG_ADMIN_USERNAME Admin 用户名 admin
AGILECONFIG_ADMIN_PASSWORD Admin 密码 123456
AGILECONFIG_TIMEOUT API 请求超时(毫秒) 30000
AGILECONFIG_ENV 默认操作环境,留空 = 操作所有环境 DEV

项目结构

agile-confg-mcp/
├── src/
│   ├── index.ts                  # MCP 服务器主入口(工具注册 + 调用分发,~1100 行)
│   ├── agileconfig-client.ts     # AgileConfig REST API 客户端(~450 行)
│   └── types.ts                  # 完整的 TypeScript 类型定义(~250 行)
├── dist/                         # 编译产物(发布到 npm)
├── package.json                  # 含 bin 入口,支持 npx
├── tsconfig.json
├── .env.example                  # 环境变量模板
├── .gitignore
└── README.md

发布到 npm

# 确保已登录 npm
npm login

# 发布(prepublishOnly 脚本会自动执行 npm run build 确保 dist/ 最新)
npm publish

发布后,任何人都可以通过 npx 零安装使用:

npx -y agileconfig-mcp-server

参考链接


MIT License


🤖 Generated with Claude Code

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选