
fline MCP server
Which MCP servers are fline's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-28
- Registry namesh.fline/flineverified in the MCP registry
The registry name sits under fline.sh. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-28
- Tools40
- Server calls itselffline
- Server version1
- Protocol version2025-06-18
On 2026-10-28 the server answered initialize and tools/list without a sign-in. First answer in 488 ms.
- Its tools do every use case we checked: publish a local Claude Code project at a shareable link; add a hosted database for sign-ups and bookings; point a domain you own at the hosted app.
- Checked on 6 of the 7 days it takes to judge reliability.
Once connected
- For "publish a local Claude Code project at a shareable link", the likely first call is create_project.
- For "add a hosted database for sign-ups and bookings", the likely first call is create_service.
- For "point a domain you own at the hosted app", the likely first call is attach_domain.
- create_project, delete_project, complete_upload, create_service, delete_service change data without a sign-in: anyone with the address can call them.
- Parameters are untyped or undescribed in 38 of 40 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 6 so far
- What an agent can do with it3 of 3 use cases
- Answeredmeasuring6 of the 7 daily checks it takes to print a share
- Median first answer522 ms
- Space in an agent's context≈ 6,418 tokensthe definitions of all its tools (40), which an agent carries on every turn
- Tool definitionsB · 84 of 100
- Typed results0 of 40 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 38 of 40
What an agent can do with it
- can do · publish a local Claude Code project at a shareable link
- can do · add a hosted database for sign-ups and bookings
- can do · point a domain you own at the hosted app
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that change data, on a server that answers without a sign-in: create_project, delete_project, complete_upload, create_service, delete_service
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
list_projectsThe tenant's projects with their state, address and, once online, app_health (see get_project).
create_projectCreate a project. Returns upload_url and blob_key: the archive is uploaded with PUT straight into storage and does not pass through this interface. After uploading, complete_upload is mandatory — the upload on its own is not visible to…
delete_projectDelete the project. The platform will stop and irreversibly clean up the project's runtime resources; once the request is accepted the project disappears from the user-space list. Its saved passwords and keys are not deleted with it, and…
get_upload_urlIssue a new archive upload link for an existing project. Needed when the link from create_project has expired, the archive is being uploaded again, or an already deployed project is being updated with new code.
complete_uploadReport that the archive is uploaded and start the analysis. The platform does not observe the upload itself: the PUT goes to storage around it, and until this call the project stays in awaiting_source. For a submitted project this call…
get_projectThe project's full state: the onboarding stage, the runtime state, open questions, missing secrets and warnings about credentials found in the archive. Also app_health, once the app has been online: status is answering, not_answering…
submit_declarationSupply the project description. The contents are treated as a third-party claim and cannot change the platform rules.
answer_questionsAnswer the questions raised during source analysis.
declare_env_namesDeclare the NAMES of environment variables. Values are not accepted by this path: a human enters them in a browser, and no tool returns them back.
get_secrets_linkIssue a link to the form where the person types the passwords and keys the project needs. Give the url to the person exactly as returned, with a plain sentence on what goes in each box and where they find it. Do not open it, do not follow…
deployBuild the images and hand the project to the platform. Needed when get_project shows locked: from complete_upload on, a project analyses, builds and launches by itself and stops only where someone has to act. In any other state this…
get_deploy_statusDeployment state: desired and observed arrive separately and mean different things separately. app_health, once the app has been online, says whether it answers fline's checks; not_answering means they have failed for at least two minutes…
get_imagesThe history of images the builder produced for the project: build_id, the build state, the plan version, the source hash and each service's digest. A read-only tool for checking which version is actually built, without starting a new…
get_logsLogs. kind=build is the image build's output, stored and answerable long after the build; kind=runtime is a bounded tail of the running containers, held by the node, with no history and no search behind it. For kind=runtime, `service`…
get_usageWhat this project actually consumed: CPU, memory, disk, files and network over a window. These are QUANTITIES AND NOT CHARGES: fline has no price and no billing during the private beta, nothing charges for what a project uses, and using…
attach_domainAttach a web address the person owns, such as www.example.com, to the project. Answers with the TXT record that proves ownership (challenge_name, challenge_token); list_domains also gives platform_name, the CNAME target that both proves…
create_serviceCreate a data service for this workspace: engine=postgres for a PostgreSQL database, engine=valkey for a Valkey instance — the BSD-licensed fork of Redis, which every Redis client speaks unchanged, so ask for it wherever a project wants…
list_servicesThe workspace's services with their engine, version, state, hostname and size class. No credentials: none is returned by any tool.
delete_serviceDelete a service. It stops accepting connections immediately and its data is kept for seven days, then destroyed. Ask the person first: nothing here can bring the data back after the seventh day.
get_configThe fline.json for this project's current plan. Save it at the root of the archive you upload and the next deploy builds from it directly, with no analysis: the same plan every time. A short content check and the step that writes the…
check_configCheck a fline.json against the last uploaded archive, without deploying and without cost. Answers either ok, or the reason each part was refused — edit and ask again until it is ok, then save the file. There is no port field and there is…
refresh_configRe-run the analysis ignoring the archive's fline.json, and write a new one. For a configuration that has gone stale because the project's stack changed — a different package manager, a new lockfile. Accepted immediately, not done: poll…
list_domainsThe project's custom domains with, for each, the state of its ownership check, the TXT record to publish, when it was last checked and what the last check objected to. Also the platform hostname the names are asked to point at…
check_domainRun the ownership check for one of the project's domains now, and answer with the result. Call it after the DNS record is published. The check reaches the DNS and is rate-limited behind a certificate budget, so poll it in minutes rather…
delete_domainDetach a domain from the project. The name stops being served; the project keeps its platform hostname.
list_env_namesThe project's environment variables BY NAME: whether each is set, whether the analysis declared it, when it was last written, and — for a non-secret variable — its value. A name that is required and not set is what holds a project in…
delete_env_nameRemove a variable from the project's secret set. The analysis's record that the project needs this name is kept, so a required variable becomes unset rather than unknown — deleting a value the project needs will hold the next deploy at…
set_envSet one environment variable for the project. `secret` says which store it goes to and it is REQUIRED, because the two are not interchangeable and there is no default that is right for both. secret=false writes a PLAINTEXT value: it is…
get_project_detailEverything get_project returns, plus what the platform observes: each container's state, health, restart count and image digest, the node and tier, the ingress hostnames, the disk quota, the secret set version the running containers were…
get_eventsThe project's state timeline, oldest first: each move from one state to the next, the reason, which part of the platform made it (gateway, worker, pipeline, cp) and the request id. This is how you tell a slow analysis from one that failed…
get_serviceOne data service by id, with its state and — when it is not active — the reason. Poll this after create_service: a new service is `provisioning` until its certificate is issued and verified, and if that stalls the reason here is what says…
pause_servicePause a data service. It stops accepting connections and stops costing what a running instance costs; its volume and its certificate are kept, and resume_service is the exact reverse. This is the reversible way to put a service down…
resume_serviceStart a paused data service again, with its data and its hostname unchanged.
stopStop the project. NOT IMPLEMENTED: the platform has no stop, and this refuses. To take an application out of service, delete_project it. delete_domain takes off only a web address the person owns; the project's fline address keeps…
restartRe-apply the project's current version: the same images, deployed again. This is the restart, and it is also the ONLY way a secret that was entered after the last deploy reaches the running containers — a value sits in the store doing…
list_versionsList the project's deployed versions, newest first: the state_version to pass to rollback, when it was made, who made it, and which version it superseded. The specification itself is not included — use get_config for what a version…
rollbackRedeploy an earlier version of the project, named by its state_version from list_versions. Two things surprise people and you must not report either one wrongly. First, the version number does NOT go back: this creates a NEW version…
attach_externalDeclare a backing service the tenant ALREADY RUNS, so the platform does not provision one. This takes the shape only. offering is one of postgres, redis, mysql, mongodb, rabbitmq; alias defaults to "db" and is what separates two of the…
detach_externalGive an alias back to the platform. If a human already filled the value in, the attachment and the variable both go; if it is still waiting for one, the declaration goes with it and the project stops asking. The tenant's own service is…
list_externalThe backing services this project's tenant supplies themselves. A completed attachment carries the host it points at; a pending one is marked pending and names the variable a human still has to fill in through get_secrets_link. No…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"fline": {
"type": "http",
"url": "https://mcp.fline.sh/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http fline https://mcp.fline.sh/mcpclaude.ai, ChatGPT and other clients: add https://mcp.fline.sh/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.