使用说明
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代币
- 登录到您的 Infomaniak经理
- 导航至 账户 → API令牌 或访问 令牌管理
- 点击 “创建令牌”
- 根据您的需求选择合适的范围:
account-账户管理domain-域名管理mail-电子邮件服务web-网站托管drive-k驱动器访问swiss_backup-备份服务vps-VPS管理dedicated-专用服务器certificate-SSL证书invoicing-计费访问
- 复制并安全存储您的令牌
📦 安装
使用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)”
超出速率限制。在发出更多请求之前等待。
🤝 贡献
欢迎投稿!请阅读我们的 贡献指南 了解详情。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'feat: add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🔗 资源
🙏 致谢
Made with ❤️ for the Infomaniak and MCP community