用途
infomaniak-mcp-agent 是一个非官方的 Model Context Protocol(MCP)服务器,目标是让用户通过自然语言(如 Claude 等 MCP 客户端)驱动整个 Infomaniak 账户的自动化操作。Infomaniak 是瑞士独立云服务商,产品线庞大(Web 托管、邮件 kDrive、kChat、DNS、AI 云、Swiss Backup 等),但其 API 分为公开文档化的部分和仅限管理器的私有部分,导致真实工作流自动化通常需要浏览器会话或自定义脚本。本项目通过单一 MCP 服务器暴露全部功能来填补这一缺口。
主要能力
服务器提供分布在 22 个领域的 78 个工具,主要包括:
- 内省工具(起点):infomaniak_overview、infomaniak_help(按意图模糊搜索工具)、infomaniak_explain(输出工具完整 JSON schema)、infomaniak_history(列出当前会话所有破坏性操作)、infomaniak_undo(撤销可逆操作)。
- 组织与产品:组织、产品列表等。
- Web 托管站点:列出、创建、删除站点;管理附加 FQDN(绑定到现有站点的 Apache vhost / DocumentRoot,可在不新建站点的情况下用单次安装服务多个域名);SSL 证书。
- 数据库:数据库操作、数据库用户管理(注意:相关工具接收 grants 数组声明用户可访问的每个数据库,省略即设为无访问权限;更新前需先调用 infomaniak_get_database_user 复制当前权限,否则会静默撤销访问;这也是撤销授权的标准方式。出于目的使用管理器私有端点,因为公开 API 的 PATCH 会接受密码、更改密码并静默清除权限和应用。相比直接通过 SSH 执行 MariaDB ALTER USER / SET PASSWORD,优先使用这些工具,因为管理器是托管数据库凭据的真实来源)。
- FTP / SSH 用户:管理。
- 身份:查询“我是谁”。
- 账户 / 组织(深度):深度账户操作。
- kDrive(深度,管理器私有):列出驱动器、浏览文件。
- VPS / 云服务器:管理。
- Node.js 应用(云服务器 hosting_3):所有 Node.js 工具均为管理器私有,需 INFOMANIAK_AUTH_MODE=auto(Chrome cookies)或 manual(SASESSION + MANAGER-XSRF-TOKEN 环境变量)。
- 邮件(kSuite):邮箱、别名、签名、备份、重定向,全部支持 CRUD。
- 域名与 DNS:记录完整 CRUD、DNSSEC 启用/禁用/检查。
- Swiss Backup:列出槽位。
- AI 工具:列出产品与公开模型目录。
- URL 短链:完整 CRUD。
- 账户审计:即将过期的域名、锁定的产品、进行中的操作。
- 工作流工具:provision_site_full、audit_dns_zones。
- 通用 API 逃生口:调用任意已文档化端点。
使用方式
- 安装:推荐通过 npx 按需获取最新版本(无需安装步骤,首次调用时解析最新版本并缓存);也可全局安装或从仓库安装以固定到特定提交。
- 配置 Claude Desktop:在 macOS 的 ~/Library/Application Support/Claude/claude_desktop_config.json 或 Windows 的 %AppData%\Claude\claude_desktop_config.json 中添加配置,重启 Claude Desktop 生效。也可配置 Claude Code。
- 认证:需要两类凭据。
- Bearer token(必需):登录 Infomaniak 账户,访问 manager.infomaniak.com/v3/ng/profile/user/token/list,点击“Create a token”,设置较长有效期,复制值并设置到 INFOMANIAK_API_TOKEN。
- 管理器会话(自动,推荐):管理器私有 API 不接受 Bearer token 或 OAuth(Infomaniak 仅向第三方应用开放 openid profile email phone 作用域;web、mail 等为保留)。因此在 INFOMANIAK_AUTH_MODE=auto(默认)下,MCP 使用 chrome-cookies-secure 按需读取本地 Chrome 中已登录 manager.infomaniak.com 的 SASESSION 和 MANAGER-XSRF-TOKEN cookie。不写入磁盘,cookie 仅在一次操作期间存于内存。会话过期时,重新加载 Chrome 中的 manager.infomaniak.com 即可,MCP 会在下次调用时获取新 cookie。
- 管理器会话(手动回退):用于无头环境或排障。打开 Chrome DevTools,Application → Cookies,复制 SASESSION 和 MANAGER-XSRF-TOKEN(URL 编码,按原样粘贴,MCP 会解码),设置到环境变量。
- 典型对话示例:可要求列出 60 天内到期的域名、在指定托管上创建站点、添加 TXT 记录、查询数据库磁盘占用、创建邮箱并转发、查看 kDrive 容量、审计整个账户、撤销本会话中最后一次 DNS 更改等。所有破坏性操作均返回计划加单次确认令牌,未用令牌回调前不会变更任何内容。
“智能体”设计与普通包装器的区别
- 引导式对话:创建站点时逐步询问(哪个组织、哪个托管、根域名还是子域名、何种类型、确认摘要),而非要求用户预先知道该调用哪个工具。
- 两阶段提交:每个破坏性操作返回带单次使用确认令牌(60 秒 TTL)的计划,未回调令牌前不变更。
- 预检检查:在调用 API 前检查冲突(已存在的 FQDN、忙碌的托管、过期域名)。
- 可操作的错误:每个错误说明发生了什么、原因以及下一步可采取的措施。
- 内省:infomaniak_overview、infomaniak_help、infomaniak_explain 提供按需上下文,无需记忆工具目录。
- 会话记忆:infomaniak_history 列出当前会话的每个破坏性操作,infomaniak_undo 撤销可逆操作。
适用场景
适合需要通过自然语言自动化 Infomaniak 账户日常运维的用户,例如批量管理 DNS 记录、创建站点或邮箱、审计即将过期的域名与 SSL、管理数据库用户权限、浏览 kDrive 等。适用于任何支持 MCP 的客户端:Claude Desktop、Claude Code、Cursor、Cline、Continue、Zed AI,以及用于调试的 MCP Inspector。
限制与注意事项
- 非官方状态:本项目非 Infomaniak Network SA 关联、认可或赞助,社区驱动、MIT 许可。
- 逆向工程端点:写操作依赖逆向工程的管理器端点(manager.infomaniak.com/proxy/...),Infomaniak 可能无通知更改这些端点,无法保证长期兼容。
- 构建方式:项目由 LLM 驱动终端会话快速构建(“vibe-coding”),并在真实账户上实时测试。在维护者本地环境运行良好且流水线全绿(TypeScript strict、ESLint、Prettier、78 项测试、构建、CodeQL、gitleaks),但根据账户拓扑、套餐层级、作用域或 Infomaniak 自身变更,可能遇到(潜在重大)缺陷。建议提交 issue 时附带精确工具调用、输入、响应(需脱敏 token/cookie/客户名)和环境(Node 版本、操作系统、MCP 客户端)。
- 速率限制:api.infomaniak.com 硬性限制 60 请求/分钟,MCP 使用令牌桶自动限流,突发时会短暂排队。
- 站点创建目录限制:创建站点时不支持 /sites/ 以外的目录,否则管理器后端会静默无操作。
- 管理器会话 cookie 过期:通常每几小时或退出 Chrome 时过期,需重新打开 manager.infomaniak.com 刷新。
- 并发限制:每个托管一次仅允许一个并发操作,Infomaniak 对同一托管的并发 POST 返回 400 operation_in_progress,MCP 会按托管串行化写调用。
- WordPress 安装:有意不在范围内。可用本 MCP 创建空站点,再从管理器向导安装 WP(applications/add 流程使用未文档化的逐步向导,自动化过于脆弱)。
- 无托管/SaaS 版本:本服务器在用户自己的机器上使用自己的凭据运行,无托管 SaaS、无代理、无遥测。
- 未来路线图(尚未实现):kDrive 写入(上传、下载、移动、共享、归档)、Newsletter(活动、联系人)、kChat(无公开 API,需逆向工程)、provision_wordpress_site 工作流、Swiss Backup 写入、逐工具正常路径测试覆盖率提升至 70%、MCPB 打包实现 Claude Desktop 一键安装。
- AI 工具作用域:仅暴露 infomaniak_list_ai_products 和 infomaniak_list_ai_models 用于发现产品与公开模型;有意不包装其推理端点(如需推理请直接使用 OpenAI 兼容 API)。