Connect MCPin five minutes
Plug Cursor or Claude Desktop into Proginter. Same auth as the REST API. Destructive actions need explicit confirmation.
What is MCP?
Model Context Protocol (MCP) is the open standard for letting AI assistants call tools running on your own infrastructure. Proginter exposes 46 tools, organized as resource groups (websites, servers, account, billing, affiliate).
You connect once with an API key. Your assistant gets typed actions and structured responses, with confirmation gates on destructive operations.
1. Generate an API key
Open the panel, pick a recommended scope set, copy the public + secret keys. Keep them safe - we cannot recover the secret.
In the panel: API Documentation → Create API Key. Pick scopes from the recommended sets below.
Recommended scope sets
Pick the smallest set that fits your use-case. You can always create a second key with broader scopes later.
Light
Read-onlySafe for chat assistants that should answer questions without changing anything. Lowest blast radius.
account:profileaccount:notificationsservers:peakswebsites:logs·websites:resourceswebsites:domains·websites:ssl·websites:databases(read-only paths only)
Standard
RecommendedManage websites and servers in normal day-to-day work. Excludes billing writes and plan changes.
account:profile·account:notifications·account:sharingservers:firewall·servers:rules·servers:peaks·servers:notifications·servers:zonewebsites(all websites scopes)
Full
Includes billingEverything. Use only if you understand that the assistant can charge cards, change plans, and delete resources after confirmation.
account(includes billing)servers(includes plan changes)websitesproper_analysis
2. Connect Cursor
Edit ~/.cursor/mcp.json (or create it). Add the Proginter server entry. Restart Cursor.
{
"mcpServers": {
"proginter": {
"url": "https://proginter.com/mcp",
"headers": {
"X-API-Key": "pk_your_public_key",
"X-API-Secret": "sk_your_secret_key"
}
}
}
}
Verify your setup
In a Cursor chat, ask: "Show me my Proginter account profile". Cursor calls the account_profile tool with action get_profile and returns your name and email. If you see a 401, your key is missing or wrong; rotate it from the panel.
3. Connect Claude Desktop
Edit claude_desktop_config.json. Path varies by OS - see the Claude Desktop docs. Use the mcp-remote shim if your version does not yet support remote MCP URLs.
Native remote MCP (newer Claude Desktop versions)
{
"mcpServers": {
"proginter": {
"url": "https://proginter.com/mcp",
"headers": {
"X-API-Key": "pk_your_public_key",
"X-API-Secret": "sk_your_secret_key"
}
}
}
}
Stdio shim fallback (older versions)
{
"mcpServers": {
"proginter": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://proginter.com/mcp",
"--header",
"X-API-Key:pk_your_public_key",
"--header",
"X-API-Secret:sk_your_secret_key"
]
}
}
}
Verify your setup
Restart Claude Desktop. Open a new chat and ask: "Use Proginter to fetch my account profile". The proginter server should show in the connected-tools list and return your profile.
4. ChatGPT Custom GPTs
ChatGPT does not natively speak MCP today. Use Custom GPT Actions with our OpenAPI 3.1 spec - same auth, same scopes.
- In ChatGPT, open Configure GPT → Create new action.
- Paste this URL into the Schema field:
https://proginter.com/api/v1/openapi.json - Set Authentication to "API Key", header name X-API-Key, value pk_...
- ChatGPT only supports a single auth header in this UI. Add the X-API-Secret as a custom header in the action options if your build supports it; otherwise use the Cursor or Claude Desktop path for full coverage.
Verify your setup
Ask the GPT: "Show me my Proginter profile". The action call should hit /profile and return your details. If headers are rejected, fall back to Cursor or Claude Desktop.
Destructive actions need explicit confirmation
The bridge gates anything that destroys, charges, or replaces data. Most MCP clients trigger a UI confirmation; if yours does not, pass _confirm: true in the call arguments.
{
"tool": "websites_image_optimizer",
"action": "create_cleanup",
"website": "example.com",
"_confirm": true
}
Without _confirm, the bridge returns destructive_confirmation_required with the exact param name to set.
Worked example: scale a VPS
Four chained calls on the servers_plan tool. Show this to your assistant once and it will reproduce the pattern.
get_config
Read the current plan config. Capture cpu, memory, disk, and the full features array.
create_generate_hash
Generate a signed plan hash for the new shape. Pass features unchanged unless the user explicitly edits an addon.
create_calculate_price
Get the prorated cost. Show it to the user. Read the response carefully if balance vs card breakdown matters.
update_plan
Apply the change with _confirm: true. Pass payment_method_id only if the user picked a non-default method.
Two important tips
- Never pass
features: {}- that strips existing addons. The bridge auto-protects this: if your assistant omits features in update_plan, the bridge re-fetches them from get_config and forwards verbatim. - use_balance defaults to true; payment_method_id defaults to the customer's default card. Light scope set excludes
account:billing, so the bridge cannot list cards - the customer must already have a default method.
Deep-link for ISVs
Send your customers straight into the Create Key modal with your scopes and label prefilled.
https://proginter.com/client/client/api-documentation?scopes=websites:files,websites:git&label=MyApp
Comma-separated scopes from the list above. Unknown scopes are ignored. The label seeds the API key name field.
What MCP cannot do here
Honest list. We add coverage as we ship.
Arbitrary shell commands
Use SSH from the panel or your own automation. The MCP surface is intentionally typed - no exec tool.
Custom package installs
Use SSH or git workflows. The image-optimizer cleanup and similar maintenance actions ARE wired up - check the catalog.
OAuth (planned)
For now, ISVs use API keys plus the deep-link. Join the OAuth waitlist.
Ready to connect?
Generate a key in the panel, paste it into your client config, and ask for your account profile to verify.