Use this guide in your own agent
This site runs a read-only MCP server over streamable HTTP. It fetches Fly.io's docs live from llms.txt and each page's .md version, keeps them in memory for about 10 minutes, and serves this guide's own pages too. No tool writes anything, and no LLM or API key is involved.
Fly.io has its own MCP tooling for managing apps; see the Fly.io MCP docs. This one is different: it only reads documentation.
Endpoint
https://flyio.nixfred.com/mcp
Tools
Every Fly.io doc page from https://docs.fly.io/llms.txt: section, title, URL and one-line description. Fetched live.
section?
Live markdown of one Fly.io doc page (the .md version). Accepts a slug like "about/pricing" or "machines/overview", or a full fly.io/docs URL.
slug | url, max_chars?
Keyword (BM25) search across Fly.io doc pages, fetched live and cached for about 10 minutes. Returns ranked passages with links.
query, limit?
Every page of this field guide with slug, title, group, summary and URL.
none
Full markdown of one field guide page, e.g. pitch, objections, support, reliability, competitive, economics, whiteboard/agent-sandbox.
slug
Keyword search over this guide's sections. Returns passages with a deep link.
query, limit?
No LLM. Runs search_guide and search_docs together and returns the best passages with sources. Your own model writes the answer.
question, limit?
Claude Code
claude mcp add --transport http flyio-field-guide https://flyio.nixfred.com/mcp Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"flyio-field-guide": {
"url": "https://flyio.nixfred.com/mcp"
}
}
} VS Code (.vscode/mcp.json)
{
"servers": {
"flyio-field-guide": {
"type": "http",
"url": "https://flyio.nixfred.com/mcp"
}
}
} Claude Desktop (via mcp-remote)
{
"mcpServers": {
"flyio-field-guide": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://flyio.nixfred.com/mcp"
]
}
}
} Raw JSON-RPC
curl -s https://flyio.nixfred.com/mcp \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_page","arguments":{"slug":"about/pricing"}}}' Notes
- Stateless: every POST is answered with JSON. There's no session ID and no server-sent event stream. GET on
/mcpfrom a browser shows this page. - Supported methods:
initialize,ping,tools/list,tools/call,resources/list,prompts/list. get_pageonly fetches fromdocs.fly.ioandfly.io. It won't fetch other hosts.- Unofficial. Not affiliated with Fly.io. Docs content belongs to Fly.io.