Remote MCP server for FFxF: VMs, managed databases, networks, firewalls, load balancers and GitHub runners in Montréal, Canada.
概览
Remote Model Context Protocol server for FFxF, a cloud provider in Montréal, Canada. It lets an AI agent rent and manage KVM virtual machines, managed databases, private networks, firewalls, load balancers and GitHub Actions runners through the FFxF API. - https://ffxf.net/mcp (Streamable HTTP, stateless) - Authorization: Bearer . The catalogue tools work without a key. - net.ffxf/cloud - https://ffxf.net/agents and https://ffxf.net/docs/mcp/ This repository documents the hosted server and gives ready-to-use client configurations. The server itself runs at FFxF; its source is not published here, and there is nothing to install. Create a key at https://console.ffxf.net/account/api-keys and give it only the scopes the agent needs: In CI, the bearer can instead be a short-lived OIDC token (GitHub Actions, GitLab CI) bound to scopes in the console under Account → OIDC. Replace ffxf_live_… with your key. Ready-made files are in examples/. (~/.cursor/mcp.
README
以下为原文 README 节选,完整内容请查看原文。
FFxF MCP server
Remote Model Context Protocol server for FFxF, a cloud provider in Montréal, Canada. It lets an AI agent rent and manage KVM virtual machines, managed databases, private networks, firewalls, load balancers and GitHub Actions runners through the FFxF API.
- Endpoint:
https://ffxf.net/mcp(Streamable HTTP, stateless) - Auth:
Authorization: Bearer. The catalogue tools work without a key. - Official MCP registry:
net.ffxf/cloud - Docs: https://ffxf.net/agents and https://ffxf.net/docs/mcp/
This repository documents the hosted server and gives ready-to-use client configurations. The server itself runs at FFxF; its source is not published here, and there is nothing to install.
Get an API key
Create a key at https://console.ffxf.net/account/api-keys and give it only the scopes the agent needs:
| Scope | Allows |
|---|---|
vms.read |
Read machines, networks, firewalls, load balancers, databases, runners |
vms.create |
Order machines |
vms.action |
Power, rename, reinstall |
vms.destroy |
Destroy machines |
network.write |
Private networks, firewalls, load balancers, reverse DNS |
databases.write |
Managed databases, users, extensions |
backups.write |
On-demand database backups |
sshkeys.write |
Add and remove SSH keys |
billing.read |
Credit balance and budget caps |
In CI, the bearer can instead be a short-lived OIDC token (GitHub Actions, GitLab CI) bound to scopes in the console under Account → OIDC.
Connect a client
Replace ffxf_live_… with your key. Ready-made files are in examples/.
Claude Code
claude mcp add --transport http ffxf https://ffxf.net/mcp \
--header "Authorization: Bearer ffxf_live_…"
Cursor (~/.cursor/mcp.json) and other clients that read mcpServers
{
"mcpServers": {
"ffxf": {
"url": "https://ffxf.net/mcp",
"headers": {
"Authorization": "Bearer ffxf_live_…"
}
}
}
}
VS Code (.vscode/mcp.json)
{
"servers": {
"ffxf": {
"type": "http",
"url": "https://ffxf.net/mcp",
"headers": {
"Authorization": "Bearer ${input:ffxf-api-key}"
}
}
},
"inputs": [
{
"id": "ffxf-api-key",
"type": "promptString",
"description": "FFxF API key",
"password": true
}
]
}
To try it without a key, call list_plans: the catalogue is public.
How agents should use it
The server sends these rules to the client at initialize; they are summarised here.
- Read the catalogue first:
list_regions,list_plans,list_images. - Call
estimate_vmand show the price to the user beforecreate_vm. - Creation, reinstall and power changes are asynchronous: poll
get_actionuntil its status leavesrunning.
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"ffxf": {
"url": "https://ffxf.net/mcp",
"headers": {
"Authorization": "Bearer ffxf_live_…"
}
}
}
}