FFxF
by ffxf.net in Developer tools
Create and manage VMs, managed databases, firewalls and load balancers in Montréal, Canada.
https://ffxf.net/mcp- Tools
- 71
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 377 ms
- 613 ms slowest 5%
- Last check
- Passed
- 10 h ago, next any minute now
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"ffxf": {
"type": "http",
"url": "https://ffxf.net/mcp"
}
}
}71 tools
- list_regions
Where machines can run. Public, no key needed.
- list_plans
Plans with their resources and prices (hourly and monthly, in CAD). Public, no key needed.
- list_images
Operating systems and ready-to-use application images. The slug is what create_vm expects. Public, no key needed.
- get_account
Credit balance, hourly burn rate and runway, quota and budget caps. Scope: billing.read.
- list_vms
The account's machines with their status, addresses and billing. Scope: vms.read.
- get_vm
One machine: status, IPv4, IPv6 /64, specs, traffic (Internet only, this traffic month: used_gb, limit_gb, period_ends_at), billing, suspension. Scope: vms.read.
- get_vm_metrics
CPU, memory, disk and network as measured from outside the machine. Scope: vms.read.
- estimate_vm
Runs every check of create_vm and prices it, without creating anything: would_succeed, hourly rate, monthly price, credit required. Call it before create_vm. Scope: vms.create.
- create_vm
Orders a machine and spends credit (hourly) or raises an invoice (monthly). Returns the machine and a provisioning action to poll with get_action. Retrying the same order is safe: it is deduplicated for 24 hours. Scope: vms.create.
- power_vm
start, shutdown (clean ACPI), reboot, or stop (hard power-off). Returns an action to poll with get_action. Scope: vms.action.
- rename_vm
Changes the hostname, inside the guest and in the console. Scope: vms.action.
- reinstall_vm
ERASES THE DISK and redeploys another image. Ask the user first. confirm_hostname must be the machine's exact current hostname. Scope: vms.action.
- destroy_vm
DESTROYS the machine and its disk, with no undo and no backup kept. Ask the user first. confirm_hostname must be the machine's exact hostname. Scope: vms.destroy.
- get_action
Follows an asynchronous action (create, reinstall, power…). Poll until status leaves running; on error it carries the reason. Scope: vms.read.
- list_vm_actions
History of actions on one machine, from the API and the console. Scope: vms.read.
- get_vm_network
IPv4 and IPv6 addresses of a machine with their reverse DNS, and its private networks. Scope: vms.read.
- set_reverse_dns
Sets the PTR record of one of the machine's addresses; null restores the default. Scope: network.write.
- list_vpcs
The account's private networks with their range, gateway and connected machines, plus the quota. Scope: vms.read.
- get_vpc
One private network and the machines on it, with their private address. Scope: vms.read.
- create_vpc
Creates an isolated private network; ready when the call returns. The first usable address (.1) is reserved for the gateway. Scope: network.write.
- delete_vpc
Deletes an empty private network. Refused while a machine is still on it: disconnect or destroy those first. Ask the user first. Scope: network.write.
- connect_vpc
Hot-adds a card on the private network and sets its address in the system, without a restart. configuration: manual means the address must be set by hand in the guest. Connecting again returns the same address. Scope: network.write.
- disconnect_vpc
Removes the machine's private address and card, without a restart. Refused for the only network of a machine with no public address. Scope: network.write.
- move_vpc
Joins the target network, then leaves this one, so the machine is never cut off. Keeps the same address ending when free. Scope: network.write.
- list_firewalls
The account's firewalls with their inbound rules and the machines they protect, plus the quota. Scope: vms.read.
- get_firewall
One firewall: its rules and the machines it protects, with the status of each (applied, pending, error). Scope: vms.read.
- create_firewall
Creates a reusable set of inbound and outbound rules. Without rules it starts with SSH (TCP 22) and ping open from anywhere; pass rules: [] for none. Nothing is filtered until it is attached to a machine. Scope: network.write.
- update_firewall
rules REPLACES the whole list and is applied at once to every attached machine: send every rule to keep, not only the new one (read get_firewall first). Removing the SSH rule can lock the agent out. pending_machines counts machines not updated yet, retried automatically. Scope…
- delete_firewall
Deletes a firewall attached to no machine. Refused while it protects one: detach it first. Scope: network.write.
- attach_firewall
From now on the machine refuses inbound traffic no rule of its firewalls opens; enforced within about ten seconds of the call. Up to 5 firewalls per machine, rules add up. Refused for a machine with no public address. Attaching again is harmless. Scope: network.write.
- detach_firewall
Removes the firewall's rules from the machine; with no other firewall it accepts all inbound traffic again. Scope: network.write.
- list_load_balancers
The account's load balancers with their addresses, pools, targets and health, listeners and rules, certificates; plus the quota. Scope: vms.read.
- get_load_balancer
One load balancer in full: status, ipv4/ipv6 to put in DNS, pools with targets (health, sessions, response time), listeners with rules in evaluation order, certificates. Scope: vms.read.
- get_load_balancer_metrics
Requests by response class, connections, bytes in/out and peak sessions over 1h (1-minute buckets), 24h (15 minutes) or 7d (1 hour), plus totals. Scope: vms.read.
- create_load_balancer
Orders a load balancer in a private network, billed by the hour from now (the account needs 24 hours of credit), or by the month (7.30 CAD) or the year (73 CAD) with billing. A monthly or yearly period comes out of credit if it covers it; otherwise billing.pending_invoice holds…
- delete_load_balancer
Deletes the load balancer, its address and its configuration; billing stops. Target machines are not touched. Ask the user first. Scope: vms.destroy.
- upsert_pool
Without pool: creates one (name required, up to 10). With pool: changes only the fields given. Deleting a pool also removes its targets and the rules leading to it. Scope: network.write.
- delete_pool
Removes a pool, its targets and the rules leading to it. Scope: network.write.
- set_targets
REPLACES the pool's targets with exactly this list (up to 25): send every target to keep. Each machine must be in the load balancer's private network (connect_vpc first). drain: true stops new connections to a target before maintenance. Scope: network.write.
- upsert_listener
An entry port on the load balancer's address. Without listener: opens one (port and protocol required, up to 5; 22 and 8402 are reserved). https gets certificates for its rules' hostnames; redirect_https makes port 80 redirect to it. A tcp listener needs a tcp default_pool…
Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 10 h ago | Passed | 200 | 350 ms |
| 21 h ago | Passed | 200 | 386 ms |
| 32 h ago | Passed | 200 | 613 ms |
| 46 h ago | Passed | 200 | 375 ms |
| 3 days ago | Passed | 200 | 385 ms |
Show 10 older checks
| 3 days ago | Passed | 200 | 377 ms |
| 4 days ago | Passed | 200 | 407 ms |
| 4 days ago | Passed | 200 | 427 ms |
| 5 days ago | Passed | 200 | 330 ms |
| 5 days ago | Passed | 200 | 356 ms |
| 6 days ago | Passed | 200 | 405 ms |
| 6 days ago | Passed | 200 | 365 ms |
| 7 days ago | Passed | 200 | 396 ms |
| 8 days ago | Passed | 200 | 365 ms |
| 8 days ago | Passed | 200 | 297 ms |