DI

daniviber/infomaniak_mcp

Developer tools
30 stars 0 forks 품질 90 트렌드 90

Complete Infomaniak MCP server

개요

A Model Context Protocol (MCP) server for interacting with the Infomaniak API. This server enables AI assistants like Claude to manage Infomaniak services including domains, email, web hosting, kDrive, and more. - 🌐 - List domains, full DNS record CRUD operations - 📧 - Manage mailboxes, aliases, and mail configurations - 🖥️ - Manage sites, PHP versions, and MySQL databases - 💾 - Access and manage kDrive cloud storage - 🔒 - View and manage backup products - 🖧 - Control VPS instances and dedicated servers - 📜 - View certificate information - 💰 - Access billing and invoice data - 🔧 - Make custom API calls for advanced operations - Node.js 18 or higher - An Infomaniak account with API access - An API token from Infomaniak 1. Log in to your Infomaniak Manager 2. Navigate to → or visit token management 3. Click 4.

README

Infomaniak MCP Server

A Model Context Protocol (MCP) server for interacting with the Infomaniak API. This server enables AI assistants like Claude to manage Infomaniak services including domains, email, web hosting, kDrive, and more.

✨ Features

  • 🌐 Domain Management - List domains, full DNS record CRUD operations
  • 📧 Email Services - Manage mailboxes, aliases, and mail configurations
  • 🖥️ Web Hosting - Manage sites, PHP versions, and MySQL databases
  • 💾 kDrive - Access and manage kDrive cloud storage
  • 🔒 Swiss Backup - View and manage backup products
  • 🖧 VPS & Servers - Control VPS instances and dedicated servers
  • 📜 SSL Certificates - View certificate information
  • 💰 Invoicing - Access billing and invoice data
  • 🔧 Generic API - Make custom API calls for advanced operations

📋 Prerequisites

  • Node.js 18 or higher
  • An Infomaniak account with API access
  • An API token from Infomaniak

🔑 Getting Your API Token

  1. Log in to your Infomaniak Manager
  2. Navigate to Account → API Tokens or visit token management
  3. Click “Create a token”
  4. Select the appropriate scopes for your needs:
    • account - Account management
    • domain - Domain management
    • mail - Email services
    • web - Web hosting
    • drive - kDrive access
    • swiss_backup - Backup services
    • vps - VPS management
    • dedicated - Dedicated servers
    • certificate - SSL certificates
    • invoicing - Billing access
  5. Copy and securely store your token

📦 Installation

npm install -g infomaniak-mcp-server

From source

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

⚙️ Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

OS Path
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"
      }
    }
  }
}

Or if installed globally or from source:

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

Environment Variables

Variable Required Default Description
INFOMANIAK_API_TOKEN Yes - Your Infomaniak API token
MCP_TRANSPORT No stdio Transport mode: stdio or http
MCP_PORT No 3000 HTTP server port (when using http transport)
MCP_STATELESS No false Set to true for stateless mode

🌐 HTTP Transport

The server supports HTTP transport with SSE streaming, enabling web-based MCP clients and remote connections.

Starting in HTTP Mode

# 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 Endpoints

Endpoint Method Description
/health GET Health check - returns server status
/mcp POST Send JSON-RPC messages (initialize, tool calls, etc.)
/mcp GET Open SSE stream for server-to-client notifications
/mcp DELETE Terminate a session
/mcp/sessions GET List active sessions (for debugging)

Session Modes

  • Stateful (default): Maintains session state across requests. Each client gets a unique session ID returned in the Mcp-Session-Id header after initialization.
  • Stateless: Each request is independent. Set MCP_STATELESS=true for serverless deployments.

Docker Deployment

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

Connecting from Web Clients

// 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
  })
});

🛠️ Available Tools

Account & Profile

Tool Description
infomaniak_ping Test API connectivity
infomaniak_get_profile Get current user profile
infomaniak_list_accounts List all accessible accounts
infomaniak_get_account Get account details
infomaniak_list_products List account products

Domain Management

Tool Description
infomaniak_list_domains List all domains
infomaniak_get_domain Get domain details
infomaniak_list_dns_records List DNS records
infomaniak_create_dns_record Create DNS record (A, AAAA, CNAME, MX, TXT, etc.)
infomaniak_update_dns_record Update DNS record
infomaniak_delete_dns_record Delete DNS record

Email Services

Tool Description
infomaniak_list_mail_services List mail services
infomaniak_get_mail_service Get mail service details
infomaniak_list_mailboxes List mailboxes
infomaniak_get_mailbox Get mailbox details
infomaniak_create_mailbox Create new mailbox
infomaniak_update_mailbox Update mailbox
infomaniak_delete_mailbox Delete mailbox
infomaniak_add_mailbox_alias Add email alias
infomaniak_delete_mailbox_alias Remove email alias

Web Hosting

Tool Description
infomaniak_list_web_hostings List web hostings
infomaniak_get_web_hosting Get hosting details
infomaniak_list_sites List sites
infomaniak_get_site Get site details
infomaniak_create_site Create new site
infomaniak_update_site Update site
infomaniak_delete_site Delete site
infomaniak_list_databases List databases
infomaniak_get_database Get database details
infomaniak_create_database Create database
infomaniak_delete_database Delete database

Cloud Storage

Tool Description
infomaniak_list_kdrives List kDrives
infomaniak_get_kdrive Get kDrive details
infomaniak_list_swiss_backups List Swiss Backups
infomaniak_get_swiss_backup Get backup details
infomaniak_list_swiss_backup_slots List backup slots

Infrastructure

Tool Description
infomaniak_list_vps List VPS instances
infomaniak_get_vps Get VPS details
infomaniak_reboot_vps Reboot VPS
infomaniak_shutdown_vps Shutdown VPS
infomaniak_boot_vps Boot VPS
infomaniak_list_dedicated_servers List dedicated servers
infomaniak_get_dedicated_server Get server details
infomaniak_reboot_dedicated_server Reboot server

Certificates & Billing

Tool Description
infomaniak_list_certificates List SSL certificates
infomaniak_get_certificate Get certificate details
infomaniak_list_invoices List invoices
infomaniak_get_invoice Get invoice details

Advanced

Tool Description
infomaniak_api_call Make custom API calls to any endpoint

💬 Usage Examples

List all accounts

"List all my Infomaniak accounts"

Manage DNS Records

"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 Mailbox

"Create a new email address [email protected] with password SecurePass123"

Check Infrastructure

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

Custom API Call

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

🔧 Development

Setup

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

Build

npm run build

Watch Mode

npm run dev

Test with MCP Inspector

INFOMANIAK_API_TOKEN=your-token npm run inspector

⚠️ API Rate Limits

The Infomaniak API has a rate limit of 60 requests per minute. Be mindful of request frequency when using automation.

🐛 Troubleshooting

“INFOMANIAK_API_TOKEN environment variable is required”

Ensure you’ve set the INFOMANIAK_API_TOKEN in your MCP client configuration.

“Infomaniak API Error (401)”

Your API token may be invalid or expired. Generate a new token from Infomaniak Manager.

“Infomaniak API Error (403)”

Your token doesn’t have the required scope. Create a new token with appropriate permissions.

“Infomaniak API Error (429)”

Rate limit exceeded. Wait before making more requests.

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔗 Resources

🙏 Acknowledgments

  • Infomaniak for their comprehensive API
  • Anthropic for the Model Context Protocol
  • The open-source community

Made with ❤️ for the Infomaniak and MCP community

View this README on GitHub

설치

npx -y infomaniak-mcp-server

설정

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