Ask an AI agent to compare hotel prices or read today’s headlines and watch what happens: it opens a browser, loads a page, wades through thousands of tokens of markup, and then trips over a cookie banner. The open-source maviapi MCP server lets your agent find APIs, request JSON data, and ask for a new API when the site you need is missing from the catalog.
Agents are bad at websites
Browsing is the slowest, most expensive way for a model to get data. Every page arrives as raw HTML, scripts and navigation included, so most of the context window goes to noise. Bot protection stops the run cold. And when a site redesigns, whatever the agent learned about its layout is worthless. None of that is the model’s fault; the web was built for eyes, not for tool calls.
maviapi already solves this for developers: it turns a website into a hosted JSON API and keeps that API working when the site changes. The missing piece was letting agents use it directly.
One line to install
The server runs locally over stdio, so there is nothing to host. In Claude Code:
claude mcp add maviapi -- npx -y '@maviapi/mcp'Claude Desktop, Cursor, VS Code and Windsurf take the same command in their MCP config; the docs have a snippet for each. No key is needed to try it: out of the box it uses our shared demo key, with 30 requests a minute and 300 a day per network.
Five tools, the whole catalog
The server provides five tools for finding, calling, and requesting APIs:
search_apisfinds an API for a site or topic.get_apireads its endpoints, parameters and the fields each one returns.call_apifetches live JSON, ten results by default so a listing never floods the context.create_apiandget_build_statusbuild what isn’t there yet.
If you lean on a few APIs, set MAVIAPI_TOOLS=booking,airbnb and each of their endpoints becomes its own typed tool with a full input schema. Here is an example request:
> Find me 3 nights in Lisbon next month, entire place, under €120 a night.
● search_apis { "query": "airbnb" } → airbnb · 3 endpoints
● call_api { "api": "airbnb", "endpoint": "search",
"params": { "location": "Lisbon", "room_type": "entire_home", "price_max": 120 } }
→ 200 · 10 listings
Here are the five best-rated places under €120…When the site has no API
When the catalog doesn’t cover a site, your agent can call create_api with the URL and a description of the data you want, then check the request with get_build_status. For builds started with your own account, review and publish the draft from the dashboard before calling the public API.
Build completion and public availability are separate. A request can reportpublished as its build status while the API remains a private draft. The shared demo key can start a build, but it does not provide an owner dashboard session. Use your own account and API key when you need to review and publish the result.
Builds are free. The shared demo key can start three per network every 30 days; with your own key you can start up to ten a day. You only ever pay for successful calls.
Open source, and listed where agents look
The server is MIT licensed on GitHub at kuzenlabs/maviapi-mcp, published to npm as @maviapi/mcp with provenance, and listed in the official MCP Registry as io.github.kuzenlabs/maviapi-mcp. Read it, fork it, or open an issue with the site you want next.
When you outgrow the demo limits, create a free account, make a key, and set it as MAVIAPI_API_KEY. New accounts start with a 7-day trial of 5,000 credits, no card required.
Founder of maviapi at KuzenLabs. Writes about API use cases and product features.
More from Musab

