Infomaniak API服务管理工具

Infomaniak MCP Server是一款用于管理Infomaniak服务的工具,支持域名、电子邮件、网络托管、kDrive等多种服务的API交互。

  • by daniviber
  • TypeScript
  • 本地部署
  • 37 星标
  • 更新于
在 GitHub 查看 daniviber/infomaniak_mcp

使用说明

Infomaniak MCP服务器

A. 模型上下文协议(MCP) 用于与交互的服务器 API信息该服务器使像Claude这样的人工智能助手能够管理Infomaniak服务,包括域名、电子邮件、网络托管、kDrive等。

✨ 特性

  • 🌐 域管理 -列出域名,完整DNS记录CRUD操作
  • 📧 电子邮件服务 -管理邮箱、别名和邮件配置
  • 🖥️ 网站托管 -管理网站、PHP版本和MySQL数据库
  • 💾 k驱动 -访问和管理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 -k驱动器访问
    • 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配置文件中:

操作系统 路径
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
窗户 %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 运输方式: stdio 或 http
MCP_PORT 没有 3000 HTTP服务器端口(使用时 http 运输)
MCP_STATELESS 没有 false 设置为 true 无状态模式

🌐 HTTP传输

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

以HTTP模式启动

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

# From source
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 初始化后的标头。
  • 无状态:每个请求都是独立的。集 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"]
# Build and run
docker build -t infomaniak-mcp .
docker run -p 3000:3000 -e INFOMANIAK_API_TOKEN=your-token infomaniak-mcp

从Web客户端连接

// Step 1: Initialize session
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');

// Step 2: Use session for subsequent requests
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 列出k驱动器
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调用

💬 用法示例

列出所有帐户

"List all my Infomaniak accounts"

管理DNS记录

"Add an A record for www.example.com pointing to 192.168.1.100"
"Show all DNS records for mydomain.ch"
"Delete the TXT record with ID 12345 from example.com"

创建邮箱

"Create a new email address info@mydomain.com with password SecurePass123"

检查基础设施

"Show me the status of all my VPS instances"
"Reboot my VPS with ID 456"

自定义API调用

"Make a GET request to /1/account to see all account details"

🔧 发展

设置

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环境变量”

确保您已设置 INFOMANIAK_API_TOKEN 在您的MCP客户端配置中。

“Infomaniak API错误(401)”

您的API令牌可能无效或已过期。从Infomaniak Manager生成新令牌。

“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许可证获得许可-请参阅 许可证 文件以获取详细信息。

🔗 资源

🙏 致谢


Made with ❤️ for the Infomaniak and MCP community