# Danny Keane Developer Docs: API and MCP Server > Danny Keane's developer docs for dannykeane.com: the REST API and its OpenAPI 3.1 spec, two MCP servers, auth.md, llms.txt, and open-source tools like figmanage. ## Danny Keane MCP server This site runs its own Model Context Protocol server over Streamable HTTP. Point any MCP client at https://dannykeane.com/mcp -- no auth, no registration. Four tools: get_about (background, career, skills; section for just the story or the career table), get_work_history (full history across Guild.ai, Jasper, Titan, Google/YouTube, Zesty, and side projects, or one role in detail with company), get_contact (email, LinkedIn, Twitter, GitHub, Figma; channel for one), and get_page (full content of a specific page by slug). Same data as llms.txt, queryable per topic instead of read whole. The server manifest is published at /.well-known/mcp.json, /.well-known/mcp/server-card.json, and /.well-known/mcp/server-cards.json -- the same document at every path MCP discovery conventions have used, so any scanner finds it. - [MCP manifest](https://dannykeane.com/.well-known/mcp.json) - [Danny Keane MCP Server docs](https://dannykeane.com/developers/mcp) ## Danny Keane docs MCP server A second MCP server, for the documents rather than the profile: point a client at https://dannykeane.com/docs/mcp to search and read this page, the privacy policy, and the rest of the site's documents. Two tools: search_docs (the sections that match a query, each with its source URL) and get_doc (one document whole, as Markdown). Same bodies the .md routes serve; no auth. - [Docs MCP server card](https://dannykeane.com/docs/mcp/server-card) - [Docs server tools and setup](https://dannykeane.com/developers/mcp) ## llms.txt A machine-readable summary of who Danny Keane is, in the llms.txt format: current role, career history, side projects, availability, and contact. llms-full.txt is the complete version with the detail attached. Both are plain text at the standard paths. developers/llms.txt is a section-scoped version of this page -- just the developer resources, for agents that want that scope without the whole profile. - [llms.txt](https://dannykeane.com/llms.txt) - [llms-full.txt](https://dannykeane.com/llms-full.txt) - [developers/llms.txt](https://dannykeane.com/developers/llms.txt) ## Danny Keane REST API The public HTTP endpoints -- live visitor stats, the GitHub contribution calendar, a cursor-paginated list of roles (/api/v1/work), the Habbo NPC chat and avatar proxy, event tracking, a batch endpoint for bulk reads, and the web app manifest -- are documented in an OpenAPI 3.1 spec at /openapi.json. No auth on any of them. The stable surface is versioned under /api/v1 (see Versioning and deprecation below). Every error is a structured JSON object with a machine-readable code, a message, and a hint -- including 404s and 405s, so no probe ever hits an HTML page. Every response carries advisory RateLimit headers (60 requests per 60-second window per endpoint), and a 429 carries Retry-After. Async batch: send Prefer: respond-async to /api/v1/batch for a 202 and a Location to poll (/api/v1/jobs/{id}). Jobs are stateless -- the id carries the request, the batch runs when you poll, nothing is stored -- and ids expire after an hour. - [openapi.json](https://dannykeane.com/openapi.json) - [api-catalog](https://dannykeane.com/.well-known/api-catalog) - [api/llms.txt](https://dannykeane.com/api/llms.txt) - [Danny Keane REST API reference](https://dannykeane.com/developers/api) ## Danny Keane SDKs and CLI Official client libraries for the REST API, published as dannykeane on npm and PyPI. Both are zero-dependency and typed, cover every data operation in the OpenAPI spec -- work history with cursor pagination, the GitHub contribution calendar, live stats, the NPC chat, and batch reads -- raise the API's ErrorResponse as a typed error, and retry a 429 after its Retry-After. Each package also installs the official dannykeane command-line tool: one command per API operation, the API's JSON on stdout, and errors on stderr as ErrorResponse JSON with a non-zero exit code, so agents can pipe it. Install with npm i dannykeane or pip install dannykeane. Every method, every CLI command, and usage examples are on the SDKs and CLI page. - [Danny Keane SDKs and CLI docs](https://dannykeane.com/developers/sdk) - [dannykeane on npm](https://www.npmjs.com/package/dannykeane) - [dannykeane on PyPI](https://pypi.org/project/dannykeane/) ## Versioning and deprecation The stable surface is /api/v1. Breaking changes ship as a new version prefix, never in place. A deprecated endpoint answers with a Deprecation header (RFC 9745) and, once a removal date is set, a Sunset header (RFC 8594) at least six months before removal. Nothing is deprecated today. Every /api response carries Link: ; rel="sunset" -- the RFC 8594 pointer to this policy -- so a client can find it from any call. ## Authentication None. Every endpoint, both MCP servers, and every discovery document here are public, read-only (bar anonymous event tracking), and anonymous: no account, no API key, no OAuth. auth.md says the same for agents that look for it there. - [auth.md](https://dannykeane.com/auth.md) ## Natural-language query (NLWeb) GET or POST /ask accepts a natural-language query and returns the same real answers the MCP tools and terminal give -- about, work history, or contact -- routed by simple keyword matching, not a generated guess. Request SSE streaming with Accept: text/event-stream, a streaming=true query param, or {"prefer": {"streaming": true}} in the POST body; the stream emits start, result, and complete events. ## Markdown content negotiation Every page on this site content-negotiates: send Accept: text/markdown to /, /about, /contact, /privacy, /habbo, or this page and the same URL returns a Markdown body rendered from the same copy the HTML ships. Each page also serves a literal .md twin at the same path (/about.md, /contact.md, and so on) for clients that fetch a suffix instead of negotiating -- both return the same frontmatter-led body. - [index.md](https://dannykeane.com/index.md) - [pricing.md](https://dannykeane.com/pricing.md) ## Agent discovery manifests Beyond the MCP server card, this domain publishes an Agentic Resource Discovery catalog, an Agent Skills index, and an A2A-shaped agent card -- three views of the same tools, for clients that check different well-known paths. The three profile tools also ship as standalone Agent Skills -- each a SKILL.md file under /skills, checked into this repo and served as-is, with a SHA-256 digest in the Agent Skills index so a client can verify the file it fetched is the one advertised. The whole site is also bundled as an Agent Plugin (agent-plugins.org): plugin.json at the site root, with the same MCP server declared in a sibling mcp.json and the same skills discovered from /skills. The homepage also answers /?mode=agent with a structured JSON view -- the same MCP tools, REST endpoints, and resource links above, for clients that check a query-param convention instead of negotiating on Accept. - [ai-catalog.json](https://dannykeane.com/.well-known/ai-catalog.json) - [agent-skills index](https://dannykeane.com/.well-known/agent-skills/index.json) - [agent-card.json](https://dannykeane.com/.well-known/agent-card.json) - [get-about SKILL.md](https://dannykeane.com/skills/get-about/SKILL.md) - [get-work-history SKILL.md](https://dannykeane.com/skills/get-work-history/SKILL.md) - [get-contact SKILL.md](https://dannykeane.com/skills/get-contact/SKILL.md) - [plugin.json](https://dannykeane.com/plugin.json) - [mcp.json](https://dannykeane.com/mcp.json) ## Open-source tools figmanage: open source CLI and MCP server for Figma workspace admin. 122 tools covering seats, permissions, billing, files, and components -- the Figma admin API surface exposed to AI agents. Runs locally, connects to any MCP client, and chains into larger agent workflows. 3K+ downloads in its first week (2026). The official CLI ships on npm: npm install -g figmanage. Figma plugins: design-to-dev handoff tooling, Redlines and others. 130K+ installs, used at Google, Facebook, Apple, and Airbnb. GitHub holds the source for both, plus the Bootstrap CSS animation work that shipped to Mars on NASA's Ingenuity helicopter. - [figmanage](https://github.com/dannykeane/figmanage) - [figmanage on npm](https://www.npmjs.com/package/figmanage) - [Figma plugins](https://figma.com/@dannykeane) - [GitHub](https://github.com/dannykeane) ## Crawling and indexing robots.txt allows AI search and answer engines, lets GPTBot and ClaudeBot crawl, and declines training (Content-Signal ai-train=no); sitemap.xml lists every indexable route with real last-modified dates. Questions, bug reports, or an agent hitting something unexpected: email me@dannykeane.co.uk. - [robots.txt](https://dannykeane.com/robots.txt) - [sitemap.xml](https://dannykeane.com/sitemap.xml) - [me@dannykeane.co.uk](mailto:me@dannykeane.co.uk) ## Optional - [Full site llms.txt](https://dannykeane.com/llms.txt): the complete profile, not scoped to developer resources.