Skills/npm/fly-io-mcp-server

fly-io-mcp-server@0.1.7

VERIFIED· startup only

Publisher claims: "MCP server for managing Fly.io machines, apps, logs, and Docker images." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server) · listed in the official MCP RegistryPublisher pulsemcp · publishing for 506 daysInstalls 0Last detonated 19 h ago
$claude mcp add fly-io-mcp-server -- npx -y fly-io-mcp-server
WatchReport an issue

Coverage

Startup only; authenticated tool behavior not tested.
Tested
server startup over stdio (initialize sent) · every file read, file written and host contacted by what ran
Not tested
the tool list (the server exited before answering) · what the tools do when called with real credentials
Needs
FLY_IO_API_TOKEN — give it to the server where it runs, through vet-skills run --secrets, so the value never enters the server's environment. Never paste a credential into a chat, a ticket or a report.

What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
FLY_IO_API_TOKENConfiguration, not credentials: DISABLE_DOCKER_CLI_TOOLS, ENABLED_TOOLGROUPS, FLY_IO_APP_NAME, FLY_IO_MOCK_DATA, SKIP_HEALTH_CHECKS
Where it talks to
no vendor host named in the codeAlso fly.io — not the publisher's domain; check what for before connecting.
What the honeypot saw
no credential files read · no network
What we could not test
the tool list (the server exited before answering) · what the tools do when called with real credentials

Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names fly.io as well as its own vendor. The guard injects FLY_IO_API_TOKEN only into requests to the host you bind (and its subdomains) and refuses the rest.

$vet-skills run --net declared -- npx -y fly-io-mcp-server

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; startup only; authenticated tool behavior not tested) on 2026-11-13 and scored it 90/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed (it asks for FLY_IO_API_TOKEN); the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 47 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
7.1sprocessdependency install exit 0
27sprocessrelaunched with a decoy FLY_IO_API_TOKEN (tagged; nothing real)
47sprocessexec /app/apps/web/node_modules/.bin/fly
47sprocessexec /root/.cache/node/corepack/v1/pnpm/10.28.0/dist/node-gyp-bin/fly
47sprocessexec /app/node_modules/.bin/fly
47sprocessexec /pnpm/fly
47sprocessexec /usr/local/sbin/fly
47sprocessexec /usr/local/bin/fly
47sprocessexec /usr/sbin/fly
47sprocessexec /usr/bin/fly
47sprocessexec /sbin/fly
47sprocessexec /bin/fly
47sprocessexec /app/apps/web/node_modules/.bin/docker
47sprocessexec /root/.cache/node/corepack/v1/pnpm/10.28.0/dist/node-gyp-bin/docker
47sprocessexec /app/node_modules/.bin/docker
47sprocessexec /pnpm/docker
47sprocessexec /usr/local/sbin/docker
47sprocessexec /usr/local/bin/docker
47sprocessexec /usr/sbin/docker
47sprocessexec /usr/bin/docker
47sprocessexec /sbin/docker
47sprocessexec /bin/docker
47sclaimedstartup only: exited before answering, asking for FLY_IO_API_TOKEN (a decoy value was refused)
47sprocessscript backend runs setup only
47sprocessno install scripts to re-run

Static findings

HIGH
Access to sensitive file pathsshared/tools/get-machine.js:58 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesmachine.config?.envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathsshared/fly-io-client/fly-cli-client.js:127 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesenv: m.config?.env,Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05

Cost to the agent

Instructions loaded
≈49 tok
1 file · 69 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for fly-io-mcp-server@0.1.7 as of 18 h ago. This is the package itself, not its dependencies.