Nextdev MCP
Recommends APIs to AI agents based on agent-readiness and use-case keyword overlap, returning structured endpoints and documentation to ground integration code.
README
Nextdev MCP
The open-source MCP server that powers the Nextdev Agent Usability Index.
When an AI coding agent needs to choose an API and ground its integration code, it calls Nextdev. We return ranked recommendations scored on agent-readiness plus the structured API surface — and the full structured content of every customer post — to build with.
This repo is the source for the hosted endpoint at https://www.joinnextdev.com/api/mcp. Read it to audit how the index works. Contribute to extend it.
Why this exists
Every AI coding agent makes two decisions per integration: which API to use, and how to use it. Both decisions are usually made on training data that's 12–18 months stale. Nextdev sits in between — we maintain a live, structured index of API vendors plus their actual endpoints, sample code, and structured blog content. The agent calls us, we return decisions grounded in real surfaces.
Install (one paste)
{
"mcpServers": {
"nextdev": {
"type": "http",
"url": "https://www.joinnextdev.com/api/mcp"
}
}
}
- Claude Code: paste into
~/.config/claude-code/mcp.jsonor.mcp.jsonin your repo - Cursor: Settings → MCP → add new HTTP server with the URL above
- Windsurf / Cline / Continue / any MCP-compliant client: same URL, HTTP transport
No API key. No login. Restart your IDE and the tools appear.
What an agent interaction actually looks like
User: "What's the best payment API for an autonomous AI agent settling
micropayments to other agents? Build me a working prototype."
Agent thinks: I should check Nextdev's index before guessing.
→ tools/call recommend_api({ use_case: "autonomous AI agent settling
micropayments to other agents" })
← { top: "soap-payments", score: 0.93, rationale: "agent-native APIs,
llms.txt published, structured webhooks, settled-by-agent endpoint",
runnerUp: "stripe-ac", … }
→ tools/call get_api_surface({ orgSlug: "soap" })
← { docsRoot, endpoints: [POST /agents/{id}/settle, …],
sdkMethods: [soap.agents.settle(…), …],
authSchemes: ["agent-bearer"], … }
→ tools/call query_blog({ orgSlug: "soap",
query: "settle micropayment between agents" })
← { posts: [{ slug: "agent-to-agent-micropayments", … }], nextStep: … }
→ tools/call get_blog_post({ orgSlug: "soap",
slug: "agent-to-agent-micropayments" })
← { content: [
{ type: "heading", data: { text: "Settling A2A payments" } },
{ type: "code", data: { language: "typescript",
code: "const tx = await soap.agents
.settle({ … })" } },
{ type: "steps", data: { steps: [ … ] } },
…
] }
Agent answers user with grounded code, citing the post URL.
Every block above is structured JSON, not parsed HTML. The agent gets code blocks with language tags, steps as explicit arrays, comparisons as left/right columns — never has to scrape.
Tools
| Tool | What it does |
|---|---|
list_orgs |
List every API vendor in the Nextdev index — slug, name, blog URL, llms.txt URL. Call this first to discover what you can query. |
get_api_surface |
Return the structured surface for one vendor — every endpoint (method + path + summary + params + returns), every SDK method, the auth scheme. Use this to ground integration code in real symbols. |
query_blog |
Search a vendor's agentic blog for posts relevant to a question. Returns titles, excerpts, URLs, categories. Token-overlap ranking, filterable by category. |
get_blog_post |
Return the full structured content of a single post — every code block tagged with language, every comparison/table/steps/list as explicit typed blocks. The structured artifact behind the post. |
search_docs |
Hybrid BM25 + embedding semantic search across the vendor's real docs site. Returns top-K reference pages. Requires OPENAI_API_KEY server-side for embeddings; the hosted endpoint has it set. |
recommend_api |
The recommendation engine. Given a use_case, returns ranked vendors with combined score (60% agent-readiness + 40% use-case keyword overlap), rationale, and a nextStep pointer. |
compare_apis |
The comparison engine. Side-by-side on agent-readiness, endpoint count, SDK depth, auth, and use-case-matching endpoints. Returns a tally and "choose X when…" rationale per side. |
The content contract
Every Nextdev post returned from get_blog_post follows this typed-block shape. Agents parse blocks, not HTML:
| Block type | Fields |
|---|---|
heading |
text, level (h2/h3) |
text |
content (markdown), alignment |
code |
code, language, caption |
list |
items[] (each: icon, title, description), style (bullets/cards) |
comparison |
leftColumn + rightColumn (each: label, items[], style) |
steps |
steps[] (each: title, description) |
table |
headers[], rows[], caption |
companyCard |
name, url, bestFor, description, strengths[], pricing |
quote |
quote, author, role, company |
callout |
content, type (info/warning/tip/important), title |
stats |
stats[] (each: value, label, prefix, suffix), columns |
image |
src, alt, caption, width |
cta |
text, buttonText, buttonUrl, style |
This is the contract. Adding new block types is a versioned change to the MCP.
Methodology
Agent-readiness scores are curated by the Nextdev team and calibrated against the public leaderboard at /labs. The scoring axis rewards:
- A published, parseable
llms.txt - Structured
apiSurface(OpenAPI, typed SDKs, machine-readable auth) - Code-block stability across pages
- Webhook + event coverage
- Existence of an MCP server (or how easy it is to build one)
Combined score in recommend_api:
score = 0.6 * agent_readiness + 0.4 * use_case_keyword_overlap
We default to weighting agent-readiness higher than keyword fit because the vendor with cleaner docs almost always produces a better integration, even if it's a slightly looser semantic match.
Audit the code
This repo IS the production server. Read src/server.ts to see every tool handler. Read src/retrieval.ts to see how search_docs blends BM25 with embeddings. No hidden logic, no separate hosted-only branch.
The code runs against the Nextdev index in Firestore. We don't ship the dataset in this repo — the data lives behind the hosted endpoint. If you want the data, just call the hosted MCP.
How to contribute
This project is open to contributors. The most useful contributions today:
- More transports. Currently HTTP only. A
stdiovariant would let users run it locally without the network roundtrip. - Better scoring. The recommendation engine combines agent-readiness + keyword overlap. Smarter ranking that doesn't require an LLM round-trip per request is welcome.
- New tools. Suggested next ones:
get_best_for(category, axis),get_changelog(orgSlug),compare_vs_self_over_time(orgSlug). - Rate limiting. The hosted endpoint will need this before adoption scales.
Open an issue or a PR. We respond.
License
MIT — use it, fork it, build on it. We just ask that you don't pretend you wrote it.
Links
- Hosted endpoint: https://www.joinnextdev.com/api/mcp
- Leaderboard: https://www.joinnextdev.com/labs
- Methodology: https://www.joinnextdev.com/labs/methodology
- Twitter: @joinnextdev
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.