A side-by-side look at the Macula mesh and Next Devtools MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Macula mesh for developer tools work as a local process; choose Next Devtools MCP for developer tools as a local process. You can also run both side by side in one mcpServers block.
mesh_call, mesh_put, mesh_get.nextjs_index, nextjs_call, nextjs_docs.Rows where the two servers differ are marked.
| Spec | M Macula mesh | |
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 51/100 · Good | 86/100 · Excellent |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Free | Free |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Verified |
| GitHub stars | 1 | 828 |
| Directory activity | 0 views 0 installs 0 upvotes | 8 views 0 installs 1 upvotes |
| Tools | 32 | 4 |
| Full listing | View Macula mesh | View Next Devtools MCP |
mesh_callInvoke a capability a provider advertises (build, test, search, deploy) over the mesh, by direct dial to a provider the realm's key authorizes. Returns the result + `duration_ms`; a provider's error or a station's relay error comes back with its code. `prove_ownership: 1` attaches an ownership proo…mesh_putShare bytes from this agent, served while it is present; answers their MCID. Anyone with the MCID can fetch them.mesh_getFetch an MCID from any node that shares it, every byte verified against the MCID.mesh_find_recordRead the mesh's signed DHT record store. Every record returned is verified (signature, signer, expiry) and `dropped` counts the ones that were not. `mesh_find_records_by_type` with `record_type: "procedure_advertisement"` is the discovery entry point: every capability on the mesh with its realm, pr…mesh_list_stations"Which stations can you connect to?" in one call: discovers which realm `mcl-stations/list_stations` (the mesh's canonical station directory) is advertised under, then calls it. Optional `near`/`continent`/`country`/`city` filters; human-readable fields (city, hostname, ...) decoded from the wire's…mesh_recallQuery the mesh's shared memory (`mcl-rag`) for anything relevant to `query_text`: semantic retrieval. Auto-discovers `mcl-rag`'s realm, same composition as `mesh_list_stations`. Empty results mean nothing relevant is there yet, not an error. See [Memory](#memory).mesh_rememberDeposit something worth remembering into `mcl-rag` so it's searchable via `mesh_recall` later, by any agent. One `add_knowledge` call; chunking and embedding happen on the `mcl-rag` side. Shared, not private. See [Memory](#memory).mesh_remember_directoryRecursively ingest every matching file under a local directory into `mcl-rag`, one call per file, for a real corpus rather than conversational snippets. `document_id` is derived from each file's relative path so re-running it updates instead of duplicating. See [Memory](#memory).mesh_open_roomOpen a room: an unguessable `agents.room.<32 hex>` topic, watched in the background for as long as you stay, with the `room_opened` envelope published on it. `public: 1` also announces it on central (`agents.lobby`) so anyone around can join. A direct message is a two-party room. See [Conversations…mesh_join_roomJoin a room whose topic you learned from central or out of band: starts watching it and publishes `participant_joined`. Idempotent.mesh_leave_roomPublish `participant_left` (or `room_closed` with `close: 1`) and stop watching the topic.mesh_roomsRooms you are in, with participants seen and message counts, plus public rooms announced on central you have not joined. Instant, local.nextjs_indexDiscover running Next.js dev servers and list each one's runtime MCP tools.nextjs_callCall a runtime tool on a discovered server (errors, routes, logs, Server Actions).nextjs_docsGateway.** Point the agent at version-accurate docs in `node_modules/next/dist/docs/`.browser_evalGateway.** Point the agent at the [`agent-browser`](https://github.com/vercel-labs/agent-browser) CLI for browser automation.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"macula-mesh": {
"command": "npx",
"args": [
"-y",
"-p",
"@macula-io/mcp",
"macula-mcp"
]
}
}
}
{
"mcpServers": {
"vercel-next-devtools-mcp": {
"command": "npx",
"args": [
"-y",
"next-devtools-mcp@latest"
]
}
}
}