FFxF

net.ffxf由 ffxf.net 發布官方發布者v1.12.0更新於 Oct 30, 2026

Create and manage VMs, managed databases, firewalls and load balancers in Montréal, Canada.

已驗證Streamable HTTP可網頁執行資料庫雲端與基礎設施

概覽

AI 產生的概覽

FFxF 讓助理在加拿大蒙特婁租用與管理 KVM 虛擬機器、私有網路、防火牆、負載平衡器與代管資料庫。

可以做什麼
  • 瀏覽目錄:區域、含價格的方案、作業系統與應用程式映像檔
  • 檢視與估價機器:列出並讀取虛擬機器、外部指標、流量與計費,並在下單前估算價格
  • 下單與操作機器:建立、開關機、改名、重裝或銷毀虛擬機器,並輪詢回傳的動作
  • 管理私有網路:建立、刪除與檢視 VPC,連接、中斷或搬移機器的私網網卡
  • 管理防火牆:建立、更新、掛載與卸載可重複使用的規則集
  • 管理負載平衡器:建立,編輯後端集區、目標與監聽器,並讀取指標
適用情境
適合希望不離開對話就讓助理在加拿大開通或維運雲端伺服器的情境:為訂單估價、建立虛擬機器、設定私有網路與防火牆,或在機器前放置負載平衡器。
執行需求
遠端 streamable HTTP 端點 ffxf.net,無需本機安裝。目錄類工具不需憑證;其餘操作需以 Authorization bearer 標頭傳入 FFxF API 金鑰,或在 CI 中使用綁定權限範圍的短期 OIDC 權杖。按小時計費的資源需要帳戶有預付餘額。
安裝前請注意
API 金鑰帶有計費、機器、網路與銷毀等權限範圍,須妥善保管。建立虛擬機器、負載平衡器與月租方案會消耗餘額或產生帳單,每台機器每月超過 1 TB 的流量會按超額計費。destroy_vm 與 reinstall_vm 會清空磁碟且無法復原,需以精確主機名稱確認。防火牆變更會立即套用到所有已掛載機器,可能中斷 SSH;移除最後一道防火牆會重新放行所有 inbound 流量。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 FFxF,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/net.ffxf%2Fcloud/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ffxf": {
      "type": "http",
      "url": "https://ffxf.net/mcp"
    }
  }
}

工具

71

list_regions

List regions

Where machines can run. Public, no key needed.

無需輸入參數。

list_plans

List plans

Plans with their resources and prices (hourly and monthly, in CAD). Public, no key needed.

輸入參數region

list_images

List images

Operating systems and ready-to-use application images. The slug is what create_vm expects. Public, no key needed.

輸入參數planregioncategory

get_account

Get account

Credit balance, hourly burn rate and runway, quota and budget caps. Scope: billing.read.

無需輸入參數。

list_vms

List machines

The account's machines with their status, addresses and billing. Scope: vms.read.

輸入參數limitcursorregionstatusbilling

get_vm

Get a machine

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.

輸入參數vm必填

get_vm_metrics

Get machine metrics

CPU, memory, disk and network as measured from outside the machine. Scope: vms.read.

輸入參數vm必填timeframe

estimate_vm

Estimate an order

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.

輸入參數vpcipv4plan必填image必填region必填billing必填optionshostname必填ssh_keysprivate_only

create_vm

Create a machine

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.

輸入參數vpcipv4plan必填image必填region必填billing必填optionspaymenthostname必填ssh_keysprivate_onlyidempotency_key另有 1 個

power_vm

Start, stop or reboot

start, shutdown (clean ACPI), reboot, or stop (hard power-off). Returns an action to poll with get_action. Scope: vms.action.

輸入參數vm必填type必填

rename_vm

Rename a machine

Changes the hostname, inside the guest and in the console. Scope: vms.action.

輸入參數vm必填hostname必填

reinstall_vm

Reinstall a machine

ERASES THE DISK and redeploys another image. Ask the user first. confirm_hostname must be the machine's exact current hostname. Scope: vms.action.

輸入參數vm必填image必填ssh_keysconfirm_hostname必填password_delivery

destroy_vm

Destroy a machine

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.

輸入參數vm必填whenconfirm_hostname必填

get_action

Get an action

Follows an asynchronous action (create, reinstall, power…). Poll until status leaves running; on error it carries the reason. Scope: vms.read.

輸入參數action必填

list_vm_actions

List a machine's actions

History of actions on one machine, from the API and the console. Scope: vms.read.

輸入參數vm必填

get_vm_network

Get machine network

IPv4 and IPv6 addresses of a machine with their reverse DNS, and its private networks. Scope: vms.read.

輸入參數vm必填

set_reverse_dns

Set reverse DNS

Sets the PTR record of one of the machine's addresses; null restores the default. Scope: network.write.

輸入參數vm必填address必填hostname必填

list_vpcs

List private networks

The account's private networks with their range, gateway and connected machines, plus the quota. Scope: vms.read.

無需輸入參數。

get_vpc

Get a private network

One private network and the machines on it, with their private address. Scope: vms.read.

輸入參數vpc必填

create_vpc

Create a private network

Creates an isolated private network; ready when the call returns. The first usable address (.1) is reserved for the gateway. Scope: network.write.

輸入參數cidr必填name必填region必填

delete_vpc

Delete a private network

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.

輸入參數vpc必填

connect_vpc

Connect a machine to a private network

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.

輸入參數ipvm必填vpc必填

disconnect_vpc

Disconnect a machine from a private network

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.

輸入參數vm必填vpc必填

move_vpc

Move a machine to another private network

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.

輸入參數to必填vm必填vpc必填

list_firewalls

List firewalls

The account's firewalls with their inbound rules and the machines they protect, plus the quota. Scope: vms.read.

無需輸入參數。

get_firewall

Get a firewall

One firewall: its rules and the machines it protects, with the status of each (applied, pending, error). Scope: vms.read.

輸入參數firewall必填

create_firewall

Create a 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.

輸入參數name必填rules

update_firewall

Rename a firewall or replace its rules

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: network.write.

輸入參數namerulesfirewall必填

delete_firewall

Delete a firewall

Deletes a firewall attached to no machine. Refused while it protects one: detach it first. Scope: network.write.

輸入參數firewall必填

attach_firewall

Attach a firewall to a machine

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.

輸入參數vm必填firewall必填

detach_firewall

Detach a firewall from a machine

Removes the firewall's rules from the machine; with no other firewall it accepts all inbound traffic again. Scope: network.write.

輸入參數vm必填firewall必填

list_load_balancers

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

Get a 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.

輸入參數lb必填

get_load_balancer_metrics

Load balancer statistics

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.

輸入參數lb必填range

create_load_balancer

Create a 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 the invoice to pay and it stays hourly until then. Ready within minutes (status pending → active); pools and listeners can be added meanwhile. Retrying the same call is safe. Scope: vms.create.

輸入參數vpc必填name必填billingidempotency_key

delete_load_balancer

Delete a 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.

輸入參數lb必填

upsert_pool

Create or update a 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.

輸入參數lb必填namepoolprotocolalgorithmsend_proxyhealth_pathhealth_typehealth_interval

delete_pool

Delete a pool

Removes a pool, its targets and the rules leading to it. Scope: network.write.

輸入參數lb必填pool必填

set_targets

Set the targets of a pool

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.

輸入參數lb必填pool必填targets必填

upsert_listener

Open or update a 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. sources restricts who may connect (null: everyone); with an https listener, port 80 stays open to everyone. Scope: network.write.

輸入參數lb必填portsourceslistenerprotocoldefault_poolredirect_https

delete_listener

Close a listener

Closes the port and removes its rules. Scope: network.write.

輸入參數lb必填listener必填

set_rules

Set the routing rules of a listener

REPLACES the http/https listener's rules: each sends a hostname and/or path prefix to an http pool (up to 25). They are evaluated most specific first, whatever the order sent; anything unmatched goes to the default pool. No wildcard hostname on https. Each https hostname gets a certificate once it points to the load balancer. Scope: network.write.

輸入參數lb必填rules必填listener必填

list_databases

List databases

The account's managed databases with their status, private and public addresses, disk, backups and billing (no passwords), plus the quota. Scope: vms.read.

無需輸入參數。

get_database_options

Database options

What can be ordered: engines and versions, extensions, sizes with their hourly, monthly and yearly prices per region, and the price of disk beyond what a size includes. Call it before create_database and show the price to the user. Scope: vms.read.

無需輸入參數。

get_database

Get a database

One database: status, connection (host, private ip, port, defaultdb and ffxfadmin; on Valkey no database and default), public access and sources, disk usage and cap, users with their databases (null: all) and read_only, logical databases and extensions, Valkey's eviction policy and data memory, backups and restore window, maintenance window, fork link, warning. No passwords. Scope: vms.read.

輸入參數database必填

get_database_credentials

Get database credentials

Every user with its password, databases and read_only, and its own connection_uri; ready-made connection strings for the admin (private network, and public when open). Treat the result as a secret: give it to the application through an environment variable or a secret store, never into code, commits or logs. Scope: databases.write.

輸入參數database必填

get_database_metrics

Database statistics

CPU, memory, connections and commits per minute (commands per minute on Valkey) over 1h (1-minute buckets), 24h (10 minutes) or 7d (1 hour); only buckets with samples. Scope: vms.read.

輸入參數rangedatabase必填

get_slow_queries

Most expensive queries

The 20 queries with the most total time (pg_stat_statements, values replaced by $1, $2…; performance_schema on MySQL and MariaDB, values replaced by ?): calls, total and mean time, rows. A starting point for indexes. On Valkey, the commands with the most total time since the engine started (GET, HSET…). Scope: vms.read.

輸入參數database必填

list_database_backups

List database backups

Completed backups (weekly full, daily differential; the transaction log is archived continuously) and the restore window: any minute in it can be restored with restore_database. On Valkey, snapshots (rdb) every hour when there were writes, all kept 24 hours, then one a day. Scope: vms.read.

輸入參數database必填

create_database

Create a database

Orders a managed database (PostgreSQL, MySQL, MariaDB or Valkey) in a private network, billed by the hour from now (the account needs 24 hours of credit), or by the month (730 hours) or the year (ten months) with billing; get_database_options gives each price. A monthly or yearly period comes out of credit if it covers it; otherwise billing.pending_invoice holds the invoice to pay and it stays hourly until then. Ready within minutes (status pending → active), with the admin user ffxfadmin and the logical database defaultdb (Valkey: the admin default, no logical database). Retrying the same call is safe. Scope: vms.create.

輸入參數vpc必填name必填enginebillingsize_gbversionidempotency_key

restore_database

Restore into a new database

Creates a NEW database, billed like any other, holding the data as it was at a given minute of the source's restore window (list_database_backups; Valkey: the last snapshot before that minute), with the same users and passwords. The source is not touched and may have been deleted in the last 7 days. Retrying the same call is safe. Scope: vms.create.

輸入參數at必填vpcname必填size_gbdatabase必填idempotency_key

fork_database

Fork a database

Creates a NEW database, billed like any other, whose data is an instant copy of this one (for a test or staging copy), with the same users and passwords. It stays linked to its source for up to 7 days (no backups of its own, the source cannot be deleted) unless detach_database_fork ends that sooner. Retrying the same call is safe. Scope: vms.create.

輸入參數vpcname必填size_gbdatabase必填idempotency_key

detach_database_fork

Make a fork independent

Gives a linked fork its own copy of the data; the database is unavailable for about 30 seconds, then its backups start. Scope: vms.action.

輸入參數database必填

resize_database

Upgrade a database to a larger size

Moves the database to a LARGER size (more vCPU, memory and included disk; see get_database_options): same data, users, names and addresses. It restarts: one to two minutes of downtime, status maintenance meanwhile (resize.to_gb set), then active with the new size_gb. The new rate applies from the next hour. Larger sizes only, there is no way back: tell the user the new price and the downtime first. Retrying the same call is safe. Scope: vms.create.

輸入參數size_gb必填database必填idempotency_key

delete_database

Delete a database

DELETES the database and its data; billing stops. Ask the user first. confirm_name must be the database's exact name. Its backups stay 7 days (restore_database can bring it back meanwhile). Refused while a linked fork depends on it. Scope: vms.destroy.

輸入參數database必填confirm_name必填

update_database

Update a database

Any of: the name; the weekly maintenance window (day 0 = Sunday, start hour, Montréal time, 2 hours long; minor updates, usually under 2 minutes of downtime); the disk cap (the disk grows by itself at 80 % full, up to the cap; disk beyond what the size includes is billed per GB); on Valkey, the eviction policy. Scope: databases.write.

輸入參數namedatabase必填disk_cap_gbeviction_policymaintenance_daymaintenance_hour

set_database_public_access

Set public access

Opens the database to the internet at its public host and port (IPv4 and IPv6, TLS and password still required), or closes it. sources restricts who may connect (IPv4/IPv6 addresses or ranges); omitted it is left as is, null or [] means everyone. Prefer listing the user's addresses. Live within about 30 seconds. Scope: network.write.

輸入參數enabled必填sourcesdatabase必填

backup_database

Back up now

Starts a differential backup within a minute, e.g. before a risky migration. Not available on a linked fork. Scope: backups.write.

輸入參數database必填

create_database_user

Add a database user

Creates a user with a generated password, returned here once (also readable with get_database_credentials); live within seconds. Up to 30 users. It connects only to its databases (every logical database, future ones included, when databases is omitted): it reads and writes everything there and creates tables (on PostgreSQL in public too), or only reads with read_only; elsewhere it has no access. Its connection_uri points to defaultdb, or to its first database without access to defaultdb. On Valkey, an ACL user with every key and data command (no databases, no read_only). Treat the password as a secret. Scope: databases.write.

輸入參數database必填username必填databasesread_only

set_database_user_access

Change a database user's access

Sets the logical databases a user connects to (databases: a list, or null for all of them, future ones included) and whether it only reads; a field left out keeps its value. Applied within seconds; where its access is removed or lowered, its open connections are closed, so tell the user first if an application uses it. Not on the admin (it always has every database) nor on Valkey. Scope: databases.write.

輸入參數database必填username必填databasesread_only

reset_database_password

Reset a database password

Gives the user a new password, returned here; the old one stops working within seconds, so update the application first or right after. Scope: databases.write.

輸入參數database必填username必填

delete_database_user

Delete a database user

Hands the user's objects to the admin, then drops the user. The admin (ffxfadmin, or default on Valkey) cannot be deleted. Scope: databases.write.

輸入參數database必填username必填

create_logical_database

Add a logical database

Creates another database inside the managed database (like defaultdb), owned by the admin; up to 30. Not on Valkey (numbered databases, SELECT 0 to 15). Scope: databases.write.

輸入參數name必填database必填

delete_logical_database

Delete a logical database

DROPS the logical database with everything in it (the backups keep it 7 days). Ask the user first. Scope: databases.write.

輸入參數name必填database必填

enable_extension

Enable a PostgreSQL extension

PostgreSQL only. Enables an extension from get_database_options (vector for pgvector, postgis, pg_trgm…) in one logical database; installed on demand, live within a minute. Scope: databases.write.

輸入參數name必填database必填extension必填

disable_extension

Remove a PostgreSQL extension

Drops the extension without CASCADE: if objects depend on it, it stays and get_database shows why in warning. Scope: databases.write.

輸入參數name必填database必填extension必填

get_runners

GitHub runners

The runs-on labels with their vCPU, memory and price per minute, the account's concurrency (vCPU of jobs starting or running, and the cap), the linked GitHub organizations and accounts, this month's minutes and cost per repository, the actions cache next to the runners (bytes, entries and last use per repository, price per GB per month), and the Docker cache per repository (enabled in the console, bytes, last successful job). Scope: billing.read.

無需輸入參數。

list_runner_jobs

List runner jobs

Jobs that ran or wait on FFxF runners, most recent first: repository, workflow and job, label, status (queued with waiting_reason credit, budget or account; running; succeeded; failed, stopped_for_credit when the credit ran out; cancelled; refused with refusal), times, billed minutes and amount, link to the run. Scope: billing.read.

輸入參數limitcursorstatusrepository

list_ssh_keys

List SSH keys

SSH keys saved on the account, to pass to create_vm. Scope: sshkeys.write or vms.read.

無需輸入參數。

add_ssh_key

Add an SSH key

Saves a public key on the account so new machines can be reached without a password. Scope: sshkeys.write.

輸入參數name必填public_key必填

delete_ssh_key

Delete an SSH key

Removes a key from the account. Machines already deployed with it keep it; only future deployments change. Scope: sshkeys.write.

輸入參數key必填

版本歷史

1
  1. v1.12.0最新Oct 30, 2026

評分

已滿足適用檢查項的 72%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分

    請在註冊中心條目中發布圖示。

  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。