关于 infomaniak-mcp-agent
infomaniak-mcp-agent 是用于通过 AI 客户端管理 Infomaniak 账户的非官方 MCP 服务,覆盖托管、域名、邮件、DNS、kDrive 和账户审计。破坏性更改需单独确认后才会执行。
主要功能
- 01管理托管、域名和 DNS
- 02操作邮件与 kDrive 账户
- 03审计到期项目、锁定产品和进行中的操作
- 04确认前预览破坏性更改
- 05查看并撤销会话中的可逆操作
- 06按意图查找和查看工具
适用场景
- 01检查即将到期的域名
- 02创建或更新托管配置和 DNS 记录
- 03查看邮箱、kDrive 使用情况及账户状态
- 04撤销会话中可逆的更改
MCP 相关
将 Infomaniak 账户操作作为 MCP 工具提供给 AI 客户端。破坏性操作采用两阶段流程,须先取得计划和确认令牌才会应用更改。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y infomaniak-mcp-agentINFOMANIAK_API_TOKEN密钥Bearer token for api.infomaniak.com. Generate at https://manager.infomaniak.com/v3/api-tokenINFOMANIAK_AUTH_MODE密钥Authentication mode for manager.infomaniak.com endpoints. 'auto' (default) reads Chrome cookies on demand. 'manual' uses INFOMANIAK_SASESSION+INFOMANIAK_XSRF_TOKEN. 'disabled' skips manager-private endpoints.INFOMANIAK_SASESSION密钥Manager session cookie (used when INFOMANIAK_AUTH_MODE=manual).INFOMANIAK_XSRF_TOKEN密钥Manager XSRF cookie (used when INFOMANIAK_AUTH_MODE=manual).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
infomaniak-mcp-agent
通过 Claude 管理你的整个 Infomaniak 账户——具备 Agent 能力、采用两阶段提交、开源。
infomaniak-mcp-agent 是一个非官方的 Model Context Protocol 服务,可将 Infomaniak(瑞士主权云)的全部功能作为 78 个工具开放,供大模型直接调用:虚拟主机、邮件(kSuite)、kDrive、域名、DNS、DNSSEC、FTP/SSH 用户、AI 产品、账户审计等。所有破坏性操作都必须经过严格的两阶段提交,因此 Agent 绝不会在你不知情的情况下删除或修改账户中的内容。
You → Claude: "audit the example.com hosting and tell me which mailboxes are over quota"
Claude → MCP: infomaniak_audit_account → infomaniak_list_mail_hostings → infomaniak_list_mailboxes
Claude → You: 3 mailboxes >85% — paul@ (94%), notify@ (88%), team@ (87%). Want me to add an alert?
目录
为什么要开发此项目
Infomaniak 是欧洲为数不多的独立、瑞士所有、支持开源的云服务提供商之一,在瑞士自营数据中心,使用水电和风电供能,且没有美国或中国母公司。其产品种类繁多(虚拟主机、邮件、kDrive、kChat、DNS、AI 云、Swiss Backup 等),但 API 分为有文档记录的公共接口和仅供管理器使用的私有接口——这意味着,要自动化实际工作流,通常需要浏览器会话、自定义脚本,或两者兼备。
本项目通过单个 MCP 服务开放所有功能,弥合了这一差距。Claude 或任何其他 MCP 客户端都可以通过自然语言执行实际账户操作:开通虚拟主机、轮换 DNS 记录、创建邮箱、审计即将到期的域名、浏览 kDrive——无需离开聊天界面,也不用编写脚本。
🎒 通过氛围编程实时开源构建
本项目由大模型驱动终端会话(“氛围编程”)快速构建而成,每一步都针对真实的 Infomaniak 账户进行了实时测试。在维护者的本地环境中运行完美,整个流水线也全部通过(TypeScript strict、ESLint、Prettier、78 项测试、构建、CodeQL、gitleaks)。
尽管如此,考虑到本项目的构建方式,以及其中使用的几个端点是通过逆向工程得出的(参见 REVERSE-ENGINEERING.md),根据你的账户拓扑、套餐等级、权限范围或 Infomaniak 自身的变更,你完全可能遇到(甚至是严重的)错误。出现问题时,我们会及时修复。请:
- 提交 issue,提供准确的工具调用、输入、响应和你的环境信息(Node 版本、操作系统、MCP 客户端)。粘贴内容前,请清理令牌、Cookie 和客户名称。
- 或者,更好的做法是,提交一个包含失败测试的 PR,我们会一起处理。
我们快速迭代,频繁发布。请尽管提出问题。
⚠️ 状态:非官方
本项目与 Infomaniak Network SA 无关联,未获其认可,也未得到其赞助。这是一个社区驱动的工具,结合了:
- Infomaniak 公共 API(api.infomaniak.com),使用你自行生成的 Bearer 令牌。
- 通过逆向工程得出的管理器端点(manager.infomaniak.com/proxy/...),用于对公共 API 会静默忽略的 Web 托管执行写入操作。
如需了解完整情况,请阅读 REVERSE-ENGINEERING.md。Infomaniak 可能会在不另行通知的情况下更改这些端点;我们会尽力跟进,但无法保证长期兼容性。
你可以用它做什么
安装后,你可以向 Claude 提出这类问题:
- “列出我账户中所有将在 60 天内到期的域名,并按日期排序。”
- “在托管
WP1234567上创建一个新站点staging.example.com,使用 PHP 8.3,根目录设为/sites/staging。” - “为
example.com添加新 Postmark DKIM 的 TXT 记录,然后验证解析结果。” - “数据库
myprefix_wp123456占用了多少磁盘空间?哪个应用关联到了它?” - “创建一个邮箱
[email protected],使用 16 个字符的随机密码,并将邮件转发到我的 Gmail。” - “显示我担任管理员的 kDrive,以及它们的空间使用情况。”
- “审计我的整个账户:是否有被锁定的产品、即将到期的 SSL、损坏的 DNSSEC 或正在进行的操作?”
- “撤销我在本次会话中进行的上一次 DNS 更改。”
它不会静默执行任何破坏性更改:每项更改都必须经过一次计划 + 确认令牌往返流程。即使模型临时发挥,你仍能掌控一切。
为什么是“Agent 式”而不是“封装器”
大多数 MCP 服务会为每个 HTTP 端点提供一个工具,然后就此结束。本项目采用了不同的设计:
- 引导式对话——创建站点时,会引导你逐步回答“哪个组织?哪个托管?根域名还是子域名?什么类型?确认信息?”而不是要求你事先知道该调用哪个工具。
- 两阶段提交——每项破坏性操作都会返回一个包含一次性确认令牌的计划(有效期 60 s)。在你携带令牌回调之前,不会执行任何变更。
- 预检——在调用 API 之前,服务会检查是否存在冲突(现有 FQDN、繁忙的托管、已过期的域名)。
- 可操作的错误信息——每条错误信息都会说明发生了什么、原因是什么,以及你可以采取的下一步操作。
- 内省——
infomaniak_overview、infomaniak_help和infomaniak_explain会按需向 Agent 提供上下文,而不是要求它记住工具目录。 - 会话记忆——
infomaniak_history会列出当前会话中的每项破坏性操作,infomaniak_undo则会撤销其中可逆的操作。
完整的设计理念请参见 ARCHITECTURE.md。
安装
可在 npm 上获取——推荐按需使用 npx 获取最新版本:
npx infomaniak-mcp-agent
(无需安装步骤;npx 会在首次调用时解析最新版本并缓存。)
如果希望使用稳定的二进制文件,可全局安装并放入 $PATH:
npm install -g infomaniak-mcp-agent
如果希望固定到特定提交(或修改源代码),可从此仓库安装:
git clone https://github.com/Mogacode-ma/infomaniak-mcp-agent.git
cd infomaniak-mcp-agent
npm ci
npm run build
# resulting binary: ./dist/server.js
配置 Claude Desktop
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %AppData%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"infomaniak": {
"command": "npx",
"args": ["-y", "infomaniak-mcp-agent"],
"env": {
"INFOMANIAK_API_TOKEN": "paste-your-token-here",
"INFOMANIAK_AUTH_MODE": "auto"
}
}
}
}
重启 Claude Desktop 以应用更改。
配置 Claude Code
claude mcp add infomaniak \
-e INFOMANIAK_API_TOKEN=paste-your-token-here \
-e INFOMANIAK_AUTH_MODE=auto \
-- npx -y infomaniak-mcp-agent
身份验证
由于 Infomaniak 并行运行两个 API,因此需要两种不同的凭据:
| API | 身份验证 | 用途 |
|---|---|---|
api.infomaniak.com/{1,2}/... | Bearer 令牌 | 主要用于读取:个人资料、产品、邮件、云盘、DNS、域名、账单 |
manager.infomaniak.com/proxy/... | SASESSION Cookie + CSRF 令牌 | 在 Web 托管上执行写入操作(站点、数据库、应用程序) |
1. Bearer 令牌(必需)
- 登录 Infomaniak 账户。
- 前往 manager.infomaniak.com/v3/ng/profile/user/token/list。
- 点击 “Create a token”,设置较长的有效期,然后复制令牌值。
- 将其设置到
INFOMANIAK_API_TOKEN中。
2. Manager 会话(自动,推荐)
Manager 私有 API 不接受 Bearer 令牌或 OAuth(Infomaniak 仅向第三方应用开放 openid profile email phone 作用域;web、mail 等作用域为保留项)。相反,我们会读取你登录 manager.infomaniak.com 时本地 Chrome 中已有的 SASESSION 和 MANAGER-XSRF-TOKEN Cookie。
使用 INFOMANIAK_AUTH_MODE=auto(默认值)时,MCP 会按需使用 chrome-cookies-secure 读取这些 Cookie。任何内容都不会写入磁盘;Cookie 仅在单次操作期间保存在内存中。
会话过期后,只需在 Chrome 中重新加载 manager.infomaniak.com——MCP 会在下次调用时获取新的 Cookie。
3. Manager 会话(手动备用方案)
适用于无头环境或故障排查:
INFOMANIAK_AUTH_MODE=manual
INFOMANIAK_SASESSION=...
INFOMANIAK_XSRF_TOKEN=...
复制方法:在 manager.infomaniak.com 上打开 Chrome DevTools,选择 Application → Cookies,复制 SASESSION 和 MANAGER-XSRF-TOKEN(URL 编码格式——直接粘贴即可,MCP 会解码)。
快速示例
一个典型的首次对话流程:
You: What's on my account?
Claude: [calls infomaniak_overview]
You have 16 organizations, 311 products: 47 web hostings, 73 domains,
12 mail hostings, 3 kDrives, 2 AI Tools subscriptions.
You: Any domain expiring soon?
Claude: [calls infomaniak_audit_account on each org]
2 domains expire in <30 days: example.com (April 22), demo.org (May 04).
4 SSL certificates were auto-renewed in the last 7 days. No locked products.
You: Create a TXT record on example.com saying "v=spf1 include:spf.example.net ~all".
Claude: [calls infomaniak_dns_create_record → returns plan + token]
Plan: CREATE TXT record on example.com → "v=spf1 include:spf.example.net ~all", TTL 3600.
Confirm with token abc-123 within 60 s.
You: Confirm.
Claude: [calls infomaniak_dns_create_record again with the token]
Done. Record id 84219113. Logged in session history (undoable).
工具
涵盖 22 个领域的 78 个工具。使用 infomaniak_help 按意图模糊搜索,或使用 infomaniak_explain 查看工具的完整 JSON 架构。
内省(从这里开始)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_overview | 只读 | 组织和产品概览。最佳的首次调用。 |
infomaniak_help | 只读 | 根据自由文本意图(“创建站点”“列出邮箱”……)推荐匹配的工具。 |
infomaniak_explain | 只读 | 返回特定工具的完整定义(描述 + 架构)。 |
infomaniak_audit_account | 只读 | 扫描组织中的到期项、锁定产品和进行中的操作。 |
infomaniak_history | 只读 | 列出本次会话中执行的破坏性操作。 |
infomaniak_undo | 有破坏性 | 在可撤销时回滚会话操作(两阶段提交)。 |
组织和产品
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_organizations | 只读 | 你拥有技术访问权限的账户。 |
infomaniak_list_hostings | 只读 | 某个组织的 Web 托管(经典托管 + Node.js)。 |
infomaniak_list_domains | 只读 | 某个组织的域名,包含创建日期和到期日期。 |
infomaniak_get_domain | 只读 | 单个域名的详情(是否由其管理 DNS、DNSSEC、错误)。 |
Web 托管站点
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_find_site | 只读 | 域名优先查询。 将公共域名(例如 example.com)解析为 {account_id, hosting_id, hosting_label, site_id, full site object}。在使用任何需要 hosting_id + site_id 的工具之前,先调用此工具。无需再遍历每个托管服务调用 list_sites(在实际托管环境中会产生 46 次以上 API 调用)。 |
infomaniak_list_sites | 只读 | 列出指定 Web 托管服务上的站点(包括应用)。 |
infomaniak_create_site | 破坏性 | 两阶段操作:首次调用返回计划和令牌,第二次调用时传入令牌才会实际创建站点。 |
infomaniak_delete_site | 破坏性 | 两阶段删除(完整预览将被移除的站点)。 |
站点别名
绑定到现有站点的 Apache 虚拟主机/DocumentRoot 的其他 FQDN — 无需配置新站点,即可通过一次安装提供多个域名的服务。
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_site_aliases | 只读 | 查看绑定到站点的 FQDN(主域名和别名)。 |
infomaniak_add_site_aliases | 破坏性 | 绑定一个或多个 FQDN(接受 *.example.com 这类通配符)。分两阶段执行。异步操作:返回 progress_id,几秒后别名会显示在 list_site_aliases 中。 |
infomaniak_delete_site_alias | 破坏性 | 解绑一个别名 FQDN(无法移除主 FQDN)。分两阶段执行。 |
SSL 证书
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_get_certificate | 只读 | 查看当前证书状态(updating/ok/error)、颁发者、到期时间和 ACME 标识符错误。 |
infomaniak_request_certificate | 破坏性 | 分两阶段执行。颁发或续期证书。type 有三个取值:free(Let's Encrypt)、paid(Sectigo,需要 certificate_id)、custom(自带 PEM,需要 certificate + private_key)。 |
infomaniak_delete_certificate | 破坏性 | 分两阶段执行。从站点移除证书。可通过调用 request_certificate 并设置 type: "free" 撤销此操作。 |
数据库
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_databases | 只读 | 列出关联到托管服务的 MariaDB 数据库(包括磁盘用量)。 |
infomaniak_get_database | 只读 | 查看单个数据库的详情。 |
infomaniak_create_database | 破坏性 | 分两阶段创建。 |
infomaniak_delete_database | 破坏性 | 分两阶段删除(计划中会显示磁盘用量和关联的应用)。 |
infomaniak_list_database_users | 只读 | 列出关联到托管服务的 MariaDB 级用户账户(applications、permissions、phpMyAdmin 链接)。 |
infomaniak_get_database_user | 只读 | 查看单个 MariaDB 用户的详情。 |
infomaniak_change_database_user_password | 破坏性 | 更改 MariaDB 用户的密码,并原子性地重新声明其授权。分两阶段执行。 |
infomaniak_change_database_user_permissions | 破坏性 | 更改用户可访问的数据库(每个数据库分别设置读取/写入/管理权限),不更改密码。分两阶段执行。 |
⚠️ 两个工具都需要传入
grants数组,其中声明用户可访问的所有数据库 — 未列出的数据库将设为无访问权限。请先调用infomaniak_get_database_user并复制当前的permissions,否则会在不提示的情况下撤销访问权限。这是有意设计的,也是撤销授权的标准方式。这些工具有意使用管理器私有端点,而非公共 API。公共 API 的
PATCH /1/web_hostings/{id}/database_users/{user}接受密码并更改密码,但会在不提示的情况下清除permissions和applications— 参见REVERSE-ENGINEERING.md§Database users。请优先使用这些工具,而不是通过 SSH 直接执行 MariaDB
ALTER USER/SET PASSWORD。管理器是托管数据库凭据的权威来源:如果只在 MariaDB 中设置密码,它会与管理器中的记录悄然不一致,并在下一次 Infomaniak 维护时恢复为管理器中的密码 — 这可能要等上几个月,而且看不出与此次更改有任何关联。
FTP / SSH 用户
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_hosting_users | 只读 | Web 托管上的 FTP / SSH 用户。 |
infomaniak_create_hosting_user | 破坏性操作 | 分两阶段创建,并通过 connection_type 指定类型:ftp(仅 SFTP)或 ssh(完整 Shell + FTP)。 |
infomaniak_change_hosting_user_password | 破坏性操作 | 更换 FTP/SSH 用户的密码。分两阶段进行。传入用户当前的 connection_type 可保持其不变。 |
infomaniak_change_hosting_user_connection_type | 破坏性操作 | 将用户提升或降级为 ftp 或 ssh。密码保持不变。分两阶段进行。 |
infomaniak_delete_hosting_user | 破坏性操作 | 分两阶段撤销(保留文件)。 |
DNS 与 DNSSEC
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_dns_list_records | 只读 | 查看 Infomaniak 管理的区域中的所有 DNS 记录。 |
infomaniak_dns_create_record | 破坏性操作 | 分两阶段创建记录(A、AAAA、CNAME、MX、TXT、SRV、NS、CAA、PTR、SPF)。 |
infomaniak_dns_update_record | 破坏性操作 | 分两阶段更新(计划中显示当前值与拟议值的差异)。 |
infomaniak_dns_delete_record | 破坏性操作 | 分两阶段删除记录(提交前提供完整预览)。 |
infomaniak_manage_dnssec | 混合 | 统一管理 DNSSEC:action: check(只读,KSK/DS 记录)、action: enable 或 action: disable(分两阶段提交的破坏性操作)。取代 v0.9 的三个工具 dnssec_check / dnssec_enable / dnssec_disable。 |
邮件
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_mail_hostings | 只读 | 某个组织的邮件托管。 |
infomaniak_list_mailboxes | 只读 | 指定邮件托管上的邮箱。 |
infomaniak_get_mailbox_info | 只读 | 统一读取邮箱信息:传入 fields: ["aliases" | "signatures" | "backups"](可选其中部分或全部)。并行获取,各部分的错误会分别返回。取代 v0.9 的三个工具 get_mailbox_aliases / get_mailbox_signatures / get_mailbox_backups。 |
infomaniak_create_mailbox | 破坏性操作 | 分两阶段创建,并强制执行密码策略。 |
infomaniak_delete_mailbox | 破坏性操作 | 分两阶段删除(同时清除已存储的邮件)。 |
infomaniak_create_mailbox_alias | 破坏性操作 | 分两阶段为邮箱添加别名。 |
infomaniak_list_redirections | 只读 | 服务端邮件转发规则。 |
infomaniak_create_redirection | 破坏性操作 | 分两阶段创建规则(将 name@… 转发到 N 个目标)。 |
infomaniak_delete_redirection | 破坏性操作 | 分两阶段删除规则。 |
身份信息(“我是谁?”)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_get_my_profile | 只读 | 姓名、电子邮件、语言、国家/地区、时区、当前账户、安全状况(2FA、设备、上次登录)。 |
infomaniak_get_my_security | 只读 | 专项安全报告——2FA 方式及状态、恢复邮箱、已验证的电话号码、Yubikey、救援代码、密码使用时长,以及包含 IP/时间的受信任设备。 |
账户 / 组织(深入信息)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_get_account_full | 只读 | 完整组织详情:法人实体、账单地址、VAT、区域设置、支持等级、2FA 强制策略、你的角色、标签。 |
infomaniak_list_teams_and_tags | 只读 | 一次调用即可获取团队(所有者 + 数量)和标签(标有各标签的产品)。 |
邮件(深入信息)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_get_mail_hosting_full | 只读 | DNS 健康状况诊断(MX/SPF/DKIM/DMARC)、配额、管理员、父级 kSuite 链接、FQDN、团队访问权限。 |
infomaniak_get_mailbox_full | 只读 | 自动回复、别名、IMAP/POP3 上次登录、密码使用时长、邮箱大小、设备、DKIM、SMTP 封禁、邮件过滤(商业邮件/社交邮件)、获准/已屏蔽的发件人。 |
域名(深度)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_get_domain_full | 只读 | auth_code(EPP)、转移/交易状态、胶水记录、TLD/注册局、关联服务、DNS 详情及健康状况、关联产品、DNS 日志 URL。接受 ID 或 FQDN。 |
kDrive(深度,管理器私有)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_get_drive_full | 只读 | Drive 名称、总大小、已用空间、维护状态。 |
infomaniak_list_drive_users | 只读 | 有权访问 kDrive 的用户(用于访问审计)。 |
infomaniak_list_drive_trash | 只读 | 回收站中的项目及其删除时间戳。 |
VPS / 云服务器
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_vps | 只读 | 列出组织的云服务器(Jelastic)产品。 |
infomaniak_get_vps_full | 只读 | 数据中心、IP、CPU/RAM、带宽及流量、磁盘使用情况、MySQL/PHP 版本、防火墙、高级支持联系人、迁移历史。 |
Node.js 应用(云服务器 hosting_3)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_nodejs_apps | 只读 | 查找 Node.js 主机上的应用。返回每个应用的 vhost_route_id(其他所有 Node.js 工具使用的句柄)及其提供服务的 FQDN。 |
infomaniak_get_nodejs_app | 只读 | 完整应用配置:Node 版本、监听端口、start_command、build_command、公网 IP(v4 + v6)、SSL 状态、目录、存储配额。 |
infomaniak_nodejs_app_status | 只读 | 实时状态——Running 或 Stopped。开销低,可安全轮询。 |
infomaniak_nodejs_app_aliases | 只读 | 提供该应用服务的所有 FQDN(主域名 + 自动生成的 xxx.preview.hosting-ik.com)。 |
infomaniak_nodejs_app_jobs | 只读 | 最近的任务(构建 / 重启 / …),附带每个任务的 log_stream JWT。 |
infomaniak_nodejs_app_logs | 只读 | 返回短时有效的 JWT + SSE 端点 URL,用于获取运行中应用的实时 stdout/stderr 流。 |
infomaniak_nodejs_app_thumbnail | 只读 | 实时页面的 base64 JPEG 截图——无需通过 HTTP 探测即可进行视觉冒烟测试。 |
infomaniak_nodejs_app_action | 破坏性 | 两阶段操作。启动 / 停止 / 重启 / 构建。stop 会记录可撤销操作,以便执行 start。build 会返回已启动任务的 resource_id + 实时 log_stream,以便跟踪输出。 |
所有 Node.js 工具均为管理器私有(公开的 Bearer API 仅提供 Node.js 主机的状态检查)。这些工具需要
INFOMANIAK_AUTH_MODE=auto(Chrome cookies)或manual(SASESSION + MANAGER-XSRF-TOKEN 环境变量)。请参阅REVERSE-ENGINEERING.md§Node.js DevOps。
kDrive
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_drives | 只读 | 账户有权访问的所有 kDrive(含配额)。 |
infomaniak_list_drive_files | 只读 | 分页列出云盘根目录或任意文件夹中的文件 / 子文件夹。 |
URL 缩短器
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_short_urls | 只读 | 某个域名上配置的短 URL。 |
infomaniak_short_urls_quota | 只读 | 某个域名已用 / 可用的短 URL 配额。 |
infomaniak_create_short_url | 破坏性 | 两阶段创建。 |
Swiss Backup
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_swiss_backups | 只读 | 账户中的 Swiss Backup 备份槽位。 |
AI 工具
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_list_ai_products | 只读 | 账户持有的 AI 订阅。 |
infomaniak_list_ai_models | 只读 | 瑞士主权 LLM/STT 模型的公开目录。 |
工作流(多步骤)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_provision_site_full | 破坏性 | 通过先规划、再应用的编排流程,一次性配置网站 + 数据库 + DNS。 |
infomaniak_audit_dns_zones | 只读 | 跨区域审计:缺失 SPF/DMARC、悬空记录、…。 |
逃生通道(其他所有操作)
| 工具 | 注释 | 用途 |
|---|---|---|
infomaniak_api_call | destructive | 直接访问 api.infomaniak.com 上的任意端点。GET 会立即执行;POST/PUT/PATCH/DELETE 遵循两阶段提交。拒绝访问已记录的 /{1,2,3}/... 命名空间以外的路径,也拒绝访问管理器私有的 /proxy/... 路径(请使用类型化工具)。 |
局限
api.infomaniak.com的硬性速率限制为每分钟 60 次请求。 MCP 会使用令牌桶自动限流。请求突发量大时,你会看到短暂的排队延迟;这是有意设计的,用于防止你的令牌被列入黑名单。- 创建站点时,
directory只能用于/sites/路径。 这是管理器后端的要求(否则会静默地不执行任何操作——参见REVERSE-ENGINEERING.md)。 - 管理器会话 Cookie 会过期(通常每隔几小时或退出 Chrome 时过期)。重新打开 manager.infomaniak.com 即可刷新。
- 每个主机仅支持一个并发操作——Infomaniak 会以
400 operation_in_progress拒绝同一主机上的并发 POST 请求。MCP 会按主机串行处理写入调用。 - 有意不支持安装 WordPress。 使用此 MCP 创建空站点,然后通过管理器的向导安装 WP(
applications/add流程使用了未公开、且目前过于脆弱而无法可靠自动化的逐步向导)。
路线图
已在 v0.7 中发布(当前版本)
- ✅ Web 托管:列出、创建和删除站点、数据库、FTP/SSH 用户
- ✅ DNS:记录的完整 CRUD 操作、启用/禁用/检查 DNSSEC
- ✅ 邮件:邮箱、别名、签名、备份、重定向——全部支持 CRUD
- ✅ kDrive:列出云盘 + 浏览文件
- ✅ Swiss Backup:列出存储槽
- ✅ AI Tools:列出产品 + 公开模型目录
- ✅ URL 缩短器:完整 CRUD 操作
- ✅ 账户审计:即将到期的域名、已锁定的产品、正在进行的操作
- ✅ 工作流工具:
provision_site_full、audit_dns_zones - ✅
undo/history会话工具 - ✅ 用于访问任意已记录端点的通用 API 逃生通道
后续计划(v0.8+)
- ⬜ kDrive 写入操作:上传、下载、移动、共享、归档
- ⬜ Newsletter:营销活动、联系人(目前尚未开发)
- ⬜ kChat:频道、话题、帖子(尚无公开 API——需要逆向工程)
- ⬜ 工作流:
provision_wordpress_site(需要一条不依赖脆弱的管理器向导的 WP 安装路径) - ⬜ Swiss Backup 写入操作:创建存储槽、安排计划、恢复
- ⬜ 为每个工具添加顺利路径测试,将覆盖率从 35% 提升至 70%
- ⬜ MCPB 打包,以便在 Claude Desktop 中一键安装
常见问题
这是 Infomaniak 的官方产品吗?
不是。这是由社区推动的项目,采用 MIT 许可证,与 Infomaniak Network SA 无关联,也未获得其认可或赞助。请参阅 NOTICE 和 REVERSE-ENGINEERING.md 中的免责声明。
它能与 Claude 以外的客户端配合使用吗?
可以。它通过标准的 Model Context Protocol 使用 stdio 通信,因此可与任何支持 MCP 的客户端配合使用——Claude Desktop、Claude Code、Cursor、Cline、Continue、Zed AI,以及用于调试的 MCP Inspector。
我的 Infomaniak 令牌 / 会话会离开我的设备吗?
不会。服务在本地通过 stdio 运行。你的 Bearer 令牌从 INFOMANIAK_API_TOKEN(环境变量或 .env)读取,且仅用于调用 api.infomaniak.com。Chrome Cookie(SASESSION、MANAGER-XSRF-TOKEN)只会在单次工具调用期间保存在内存中,不会持久化。日志会对所有敏感值(令牌、Cookie、密码)进行脱敏处理。
它支持自托管 / 在 macOS 以外的系统上运行吗?
支持——INFOMANIAK_AUTH_MODE=manual 允许你将 Cookie 直接填入环境变量,这是在 Linux 服务器、Docker 容器或 CI 中使用的方式。在本机安装了 Chrome 的 macOS、Windows 和 Linux 上,均可自动提取 Cookie。
为什么创建站点时使用管理器私有端点,而不是公共 API?
因为公共的 POST /1/products/{id}/web_hostings/{hid}/sites 端点会悄无声息地返回成功响应,实际上却什么也没创建。对管理器的 bundle 进行逆向工程后,我们发现管理器私有端点要求提供 force_fqdn: true、directory: /sites/... 和 environment: apache_php——这些参数都没有文档说明。完整说明请参阅 REVERSE-ENGINEERING.md。
它能自动安装 WordPress 吗?
目前还不能。管理器的 applications/add 流程是一个多步骤向导,每一步都有令牌,因此很难通过脚本稳定执行。建议的做法是:先用此 MCP 创建空站点,然后通过管理器向导安装 WordPress(或其他 CMS),也可以通过 FTP/SSH 上传。
有托管版 / SaaS 版本吗?
没有。这是有意为之——此服务在你自己的机器上使用你自己的凭据运行。没有托管式 SaaS、没有托管代理,也没有遥测。
如何报告 Bug 或申请工具?
提交 GitHub issue。请提供确切的工具调用、输入、响应(请清理敏感信息——删除令牌、Cookie 和客户名称),以及你的环境信息(Node 版本、操作系统、MCP 客户端、套餐级别)。欢迎提交包含失败测试的 PR,这会让我们倍加欣喜。
Infomaniak 自家的 AI 工具呢?
Infomaniak 运营着一个瑞士主权 AI 云,托管 Llama、Mixtral、Whisper 和其他开放权重模型。此 MCP 提供 infomaniak_list_ai_products 和 infomaniak_list_ai_models,让 Agent 可以发现有哪些产品可用,以及你的账户上开放了哪些模型;我们有意不封装它们的推理端点(如需使用,请直接调用兼容 OpenAI 的 API)。
参与贡献
欢迎贡献。请阅读 CONTRIBUTING.md,并遵守 CODE_OF_CONDUCT.md。安全问题应根据 SECURITY.md 的说明私下报告。
如果这为你节省了时间
支持此项目最快的方式是在 GitHub 上点亮 ⭐——这能帮助其他 Infomaniak 用户找到此项目,也能让我知道接下来该继续构建什么。
你也可以:
许可证
此项目与 Infomaniak Network SA 无关联。“Infomaniak”、“kDrive”、“kChat”、“kMeet”、“kSuite”、“Swiss Backup”均为 Infomaniak Network SA 的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。