返回 MCP 目录
public公开dns本地运行

infomaniak_mcp

Infomaniak MCP服务器是一个基于Model Context Protocol的接口服务,允许AI助手通过Infomaniak API管理域名、邮箱、虚拟主机、云存储等多种服务。

article

README

🚀 Infomaniak MCP 服务器

这是一个用于与 Infomaniak API 交互的 模型上下文协议 (MCP) 服务器。该服务器使 Claude 等 AI 助手能够管理 Infomaniak 的各项服务,包括域名、电子邮件、网站托管、kDrive 等。

🚀 快速开始

要使用 Infomaniak MCP 服务器,你需要完成以下几个步骤:

  1. 确保满足前置条件,包括安装 Node.js 18 或更高版本,拥有 Infomaniak 账户并获取 API 令牌。
  2. 按照安装指南进行安装,可以选择使用 npm 安装或从源代码安装。
  3. 进行配置,根据不同的使用场景(如 Claude Desktop)设置相应的配置文件和环境变量。
  4. 选择合适的传输模式(如 HTTP 传输)并启动服务器。

✨ 主要特性

  • 🌐 域名管理 - 列出域名,进行完整的 DNS 记录增删改查操作。
  • 📧 电子邮件服务 - 管理邮箱、别名和邮件配置。
  • 🖥️ 网站托管 - 管理网站、PHP 版本和 MySQL 数据库。
  • 💾 kDrive - 访问和管理 kDrive 云存储。
  • 🔒 瑞士备份 - 查看和管理备份产品。
  • 🖧 VPS 与服务器 - 控制 VPS 实例和专用服务器。
  • 📜 SSL 证书 - 查看证书信息。
  • 💰 发票管理 - 访问账单和发票数据。
  • 🔧 通用 API - 进行自定义 API 调用以执行高级操作。

📋 前置条件

  • Node.js 18 或更高版本。
  • 具有 API 访问权限的 Infomaniak 账户。
  • 从 Infomaniak 获取的 API 令牌。

🔑 获取 API 令牌

  1. 登录你的 Infomaniak 管理器
  2. 导航到 账户API 令牌 或访问 令牌管理
  3. 点击 "创建令牌"
  4. 根据你的需求选择适当的作用域:
    • account - 账户管理
    • domain - 域名管理
    • mail - 电子邮件服务
    • web - 网站托管
    • drive - kDrive 访问
    • swiss_backup - 备份服务
    • vps - VPS 管理
    • dedicated - 专用服务器
    • certificate - SSL 证书
    • invoicing - 账单访问
  5. 复制并安全存储你的令牌。

📦 安装指南

使用 npm(推荐)

npm install -g infomaniak-mcp-server

从源代码安装

git clone https://github.com/YOUR_USERNAME/infomaniak-mcp-server.git
cd infomaniak-mcp-server
npm install
npm run build

⚙️ 配置

Claude Desktop

将以下内容添加到你的 Claude Desktop 配置文件中: | 操作系统 | 路径 | |----|------| | macOS | ~/Library/Application Support/Claude/claude_desktop_config.json | | Windows | %APPDATA%\Claude\claude_desktop_config.json | | Linux | ~/.config/Claude/claude_desktop_config.json |

{
  "mcpServers": {
    "infomaniak": {
      "command": "npx",
      "args": ["-y", "infomaniak-mcp-server"],
      "env": {
        "INFOMANIAK_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

或者,如果是全局安装或从源代码安装:

{
  "mcpServers": {
    "infomaniak": {
      "command": "node",
      "args": ["/path/to/infomaniak-mcp-server/build/index.js"],
      "env": {
        "INFOMANIAK_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

环境变量

| 变量 | 是否必需 | 默认值 | 描述 | |----------|----------|---------|-------------| | INFOMANIAK_API_TOKEN | 是 | - | 你的 Infomaniak API 令牌 | | MCP_TRANSPORT | 否 | stdio | 传输模式:stdiohttp | | MCP_PORT | 否 | 3000 | HTTP 服务器端口(使用 http 传输时) | | MCP_STATELESS | 否 | false | 设置为 true 以启用无状态模式 |

🌐 HTTP 传输

服务器支持带有 SSE 流的 HTTP 传输,允许基于 Web 的 MCP 客户端和远程连接。

以 HTTP 模式启动

# 使用 npx
MCP_TRANSPORT=http MCP_PORT=3000 INFOMANIAK_API_TOKEN=your-token npx infomaniak-mcp-server

# 从源代码启动
MCP_TRANSPORT=http MCP_PORT=3000 INFOMANIAK_API_TOKEN=your-token node build/index.js

HTTP 端点

| 端点 | 方法 | 描述 | |----------|--------|-------------| | /health | GET | 健康检查 - 返回服务器状态 | | /mcp | POST | 发送 JSON-RPC 消息(初始化、工具调用等) | | /mcp | GET | 打开 SSE 流以接收服务器到客户端的通知 | | /mcp | DELETE | 终止会话 | | /mcp/sessions | GET | 列出活动会话(用于调试) |

会话模式

  • 有状态(默认):在请求之间保持会话状态。每个客户端在初始化后会在 Mcp-Session-Id 标头中获得一个唯一的会话 ID。
  • 无状态:每个请求都是独立的。对于无服务器部署,设置 MCP_STATELESS=true

Docker 部署

FROM node:20-alpine
WORKDIR /app
RUN npm install -g infomaniak-mcp-server
ENV MCP_TRANSPORT=http
ENV MCP_PORT=3000
EXPOSE 3000
CMD ["infomaniak-mcp-server"]
# 构建并运行
docker build -t infomaniak-mcp .
docker run -p 3000:3000 -e INFOMANIAK_API_TOKEN=your-token infomaniak-mcp

从 Web 客户端连接

// 步骤 1: 初始化会话
const initResponse = await fetch('http://localhost:3000/mcp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json, text/event-stream'
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'initialize',
    params: { protocolVersion: '2025-03-26', capabilities: {}, clientInfo: { name: 'my-client', version: '1.0.0' } },
    id: 1
  })
});
const sessionId = initResponse.headers.get('Mcp-Session-Id');

// 步骤 2: 使用会话进行后续请求
const response = await fetch('http://localhost:3000/mcp', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Accept': 'application/json, text/event-stream',
    'Mcp-Session-Id': sessionId
  },
  body: JSON.stringify({
    jsonrpc: '2.0',
    method: 'tools/list',
    id: 2
  })
});

🛠️ 可用工具

账户与个人资料

| 工具 | 描述 | |------|-------------| | infomaniak_ping | 测试 API 连接性 | | infomaniak_get_profile | 获取当前用户个人资料 | | infomaniak_list_accounts | 列出所有可访问的账户 | | infomaniak_get_account | 获取账户详细信息 | | infomaniak_list_products | 列出账户产品 |

域名管理

| 工具 | 描述 | |------|-------------| | infomaniak_list_domains | 列出所有域名 | | infomaniak_get_domain | 获取域名详细信息 | | infomaniak_list_dns_records | 列出 DNS 记录 | | infomaniak_create_dns_record | 创建 DNS 记录(A、AAAA、CNAME、MX、TXT 等) | | infomaniak_update_dns_record | 更新 DNS 记录 | | infomaniak_delete_dns_record | 删除 DNS 记录 |

电子邮件服务

| 工具 | 描述 | |------|-------------| | infomaniak_list_mail_services | 列出邮件服务 | | infomaniak_get_mail_service | 获取邮件服务详细信息 | | infomaniak_list_mailboxes | 列出邮箱 | | infomaniak_get_mailbox | 获取邮箱详细信息 | | infomaniak_create_mailbox | 创建新邮箱 | | infomaniak_update_mailbox | 更新邮箱 | | infomaniak_delete_mailbox | 删除邮箱 | | infomaniak_add_mailbox_alias | 添加邮箱别名 | | infomaniak_delete_mailbox_alias | 删除邮箱别名 |

网站托管

| 工具 | 描述 | |------|-------------| | infomaniak_list_web_hostings | 列出网站托管服务 | | infomaniak_get_web_hosting | 获取托管服务详细信息 | | infomaniak_list_sites | 列出网站 | | infomaniak_get_site | 获取网站详细信息 | | infomaniak_create_site | 创建新网站 | | infomaniak_update_site | 更新网站 | | infomaniak_delete_site | 删除网站 | | infomaniak_list_databases | 列出数据库 | | infomaniak_get_database | 获取数据库详细信息 | | infomaniak_create_database | 创建数据库 | | infomaniak_delete_database | 删除数据库 |

云存储

| 工具 | 描述 | |------|-------------| | infomaniak_list_kdrives | 列出 kDrive | | infomaniak_get_kdrive | 获取 kDrive 详细信息 | | infomaniak_list_swiss_backups | 列出瑞士备份 | | infomaniak_get_swiss_backup | 获取备份详细信息 | | infomaniak_list_swiss_backup_slots | 列出备份插槽 |

基础设施

| 工具 | 描述 | |------|-------------| | infomaniak_list_vps | 列出 VPS 实例 | | infomaniak_get_vps | 获取 VPS 详细信息 | | infomaniak_reboot_vps | 重启 VPS | | infomaniak_shutdown_vps | 关闭 VPS | | infomaniak_boot_vps | 启动 VPS | | infomaniak_list_dedicated_servers | 列出专用服务器 | | infomaniak_get_dedicated_server | 获取服务器详细信息 | | infomaniak_reboot_dedicated_server | 重启服务器 |

证书与账单

| 工具 | 描述 | |------|-------------| | infomaniak_list_certificates | 列出 SSL 证书 | | infomaniak_get_certificate | 获取证书详细信息 | | infomaniak_list_invoices | 列出发票 | | infomaniak_get_invoice | 获取发票详细信息 |

高级功能

| 工具 | 描述 | |------|-------------| | infomaniak_api_call | 对任何端点进行自定义 API 调用 |

💻 使用示例

列出所有账户

"列出我所有的 Infomaniak 账户"

管理 DNS 记录

"为 www.example.com 添加一个指向 192.168.1.100 的 A 记录"
"显示 mydomain.ch 的所有 DNS 记录"
"从 example.com 删除 ID 为 12345 的 TXT 记录"

创建邮箱

"创建一个新的电子邮件地址 info@mydomain.com,密码为 SecurePass123"

检查基础设施

"显示我所有 VPS 实例的状态"
"重启 ID 为 456 的 VPS"

自定义 API 调用

"对 /1/account 进行 GET 请求以查看所有账户详细信息"

🔧 开发

环境搭建

git clone https://github.com/YOUR_USERNAME/infomaniak-mcp-server.git
cd infomaniak-mcp-server
npm install

构建项目

npm run build

监听模式

npm run dev

使用 MCP 检查器进行测试

INFOMANIAK_API_TOKEN=your-token npm run inspector

⚠️ API 速率限制

Infomaniak API 的速率限制为 每分钟 60 个请求。在使用自动化操作时,请注意请求频率。

🐛 故障排除

"INFOMANIAK_API_TOKEN 环境变量是必需的"

确保你已在 MCP 客户端配置中设置了 INFOMANIAK_API_TOKEN

"Infomaniak API 错误 (401)"

你的 API 令牌可能无效或已过期。从 Infomaniak 管理器生成一个新的令牌。

"Infomaniak API 错误 (403)"

你的令牌没有所需的作用域。创建一个具有适当权限的新令牌。

"Infomaniak API 错误 (429)"

速率限制已超出。等待一段时间后再进行更多请求。

🤝 贡献

欢迎贡献代码!请阅读我们的 贡献指南 以获取详细信息。

  1. 分叉仓库。
  2. 创建你的功能分支 (git checkout -b feature/amazing-feature)。
  3. 提交你的更改 (git commit -m 'feat: add amazing feature')。
  4. 推送到分支 (git push origin feature/amazing-feature)。
  5. 打开一个拉取请求。

📄 许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

🔗 资源

🙏 致谢

  • Infomaniak 提供的全面 API。
  • Anthropic 开发的模型上下文协议。
  • 开源社区。

为 Infomaniak 和 MCP 社区用心打造 ❤️

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端