1MCP
Runs many MCP servers behind one local runtime and hands each client a filtered view of them
Astro integration that exposes a running dev server's config, routes and docs to MCP clients
By Shinya Fujino (individual) TypeScript Local · Streamable HTTP Developer tools
24 popularity score ★ 61 ↓ 2.3k/wk
Opens the app, which asks before it adds the server.
claude mcp add --transport http astro http://localhost:4321/__mcp/sse{
"mcpServers": {
"astro": {
"url": "http://localhost:4321/__mcp/sse"
}
}
}{
"servers": {
"astro": {
"type": "http",
"url": "http://localhost:4321/__mcp/sse"
}
}
}[mcp_servers.astro]
url = "http://localhost:4321/__mcp/sse"gemini mcp add --scope user --transport http astro http://localhost:4321/__mcp/sseastro-mcp is not a standalone program: it is an Astro integration you add to a project's config. When you run the Astro dev server, it attaches an MCP endpoint to that server (by default http://localhost:4321/__mcp/sse) through antfu's vite-plugin-mcp, so an editor's assistant can ask the live project about itself instead of guessing from files.
Its tools return the resolved Astro config, the route table (optionally filtered by route type), and the dev server's address and port. Others look outward: listing and describing integrations from the astro.build catalogue, searching the Astro docs, and reading the changelog of a core Astro package. Two more tools come from vite-plugin-mcp and expose the Vite config digest and the module graph for a given file.
In 0.4.2 the integration only starts the server when Astro runs with the dev command (src/index.ts checks command === "dev"), so astro build and astro preview expose nothing. On start it writes its entry into the editor's MCP config file; an editor option (cursor, vscode or windsurf) picks one, otherwise it detects them. The changelog tool accepts a fixed list of 20 packages (astro, create-astro, @astrojs/db and the official @astrojs integrations), reads them from the main branch of withastro/astro, caches each for 12 hours in memory and returns at most 300 lines (src/tools/get-astro-changes.ts). Other integrations can add their own tools through an mcp:setup hook. Its makers mark the package as experimental and unstable.
| Runtime | Node.js |
|---|
An Astro project on Astro 5.0 or later (peer dependency) with Node.js and npm. Add it with npx astro add astro-mcp, or npm install astro-mcp plus mcp() in the integrations list of astro.config. The Astro dev server (astro dev) must be running for the endpoint to exist. Your client must connect to an SSE URL. The docs, integrations and changelog tools need internet access.
Experimental and unstable, in its makers' words. Only serves while astro dev runs, not during build or preview. Speaks SSE over the dev server's port, with no stdio mode. get-astro-changes covers only its 20 built-in packages, reads the changelog on the main branch rather than your installed version, and cuts it at 300 lines. search-astro-docs depends on a Cloudflare Worker run by the author, not the official Astro docs search. The README names automatic config files for VS Code, Cursor, Windsurf and Claude Code; the editor option in the code accepts only cursor, vscode or windsurf.
Fits developers working on an Astro 5 project in VS Code, Cursor, Windsurf or Claude Code who want the assistant to see the resolved config, real routes and module graph of the running dev server. It runs on your machine and needs no account. It is no use outside an Astro project or without a running dev server. For a Nuxt project, antfu's nuxt-mcp-dev, which we also list, does the same job built on the same vite-plugin-mcp.
get-astro-configlist-astro-routesget-astro-server-addresslist-astro-integrationsget-astro-integrationsearch-astro-docsget-astro-changesget-vite-configget-vite-module-info