dribba
MCP serverDev toolsOnce added, your AI can look up Dribba Engineering's services, browse case studies of past work, pull budget estimates, and find contact details. That makes it easier to scope a project or get in touch without leaving your conversation. The integration is maintained by Dribba Engineering.
Use dribba in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add dribba and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use dribba to list services
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
Details
Available today. Use it from your connected AI after setup.
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
After adding it, ask your AI about Dribba's services or request a budget estimate to see what it can look up. From there you can ask it to pull contact details when you are ready to reach out.
What your AI can do with it
- Look up the services Dribba offers
- Browse case studies of past work
- Get budget estimates
- Find contact details to reach the team
Install dribba
The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.
Claude Code
claude mcp add --transport http --scope user dribba 'https://dribba.com/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://dribba.com/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=dribba&config=eyJ1cmwiOiJodHRwczovL2RyaWJiYS5jb20vbWNwIn0=Open the link and Cursor adds the server at that address.
ChatGPT
https://dribba.com/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add dribba --url 'https://dribba.com/mcp'Run it once, then sign in with codex mcp login dribba if the server asks for an account.
From the project's README
As published by dribbaengineering/dribba in README.md.
Official SDK and CLI for the Dribba public API.
No API key, no OAuth, no account. Every read endpoint is public. If you were looking for the credentials page, there isn't one — see dribba.com/auth.md.
- Reference: https://dribba.com/docs
- Contract: https://dribba.com/openapi.json (OpenAPI 3.1)
- Developer portal: https://dribba.com/developers
CLI
Nothing to install:
npx dribba services --table
npx dribba cases --limit 3 | jq -r '.items[].slug'
npx dribba estimate --platforms ios,android --complexity complex
npx dribba ask "flutter migration"
npx dribba markdown /servicios
npx dribba --help
Add --sandbox to hit the frozen fixtures instead of production.
MCP server (stdio bridge)
Dribba's MCP server is remote — Streamable HTTP at https://dribba.com/mcp. If
your client only speaks stdio, this package ships the bridge:
{
"mcpServers": {
"dribba": { "command": "npx", "args": ["-y", "dribba-mcp"] }
}
}
npx dribba-mcp # product surface: 5 tools + llms.txt resources
npx dribba-mcp --docs # documentation surface: 4 tools
It forwards JSON-RPC and nothing else, so the tools, resources and protocol version are whatever the server declares — there is no second implementation to drift. If your client does speak Streamable HTTP, skip the bridge and point it straight at the URL.
Verified with the official @modelcontextprotocol/sdk over stdio: connect,
tools/list, tools/call, resources/list, resources/read.
SDK
npm i dribba # JavaScript / TypeScript
pip install dribba # Python 3.9+, same methods, also dependency-free
The Python client lives in python/ and is published to PyPI as
dribba.
import { Dribba } from "dribba";
const dribba = new Dribba();
const { items, total, next_cursor } = await dribba.services({ limit: 5 });
const study = await dribba.case("cityxerpa");
const budget = await dribba.estimate({ platforms: ["ios", "android"] });
// Whole collections, following the cursor for you
for await (const job of dribba.paginate("/api/v1/jobs")) {
console.log(job.title);
}
Errors
Every 4xx/5xx throws a DribbaError. Branch on code — it is stable. title
and detail are prose and may be reworded.
import { DribbaError } from "dribba";
try {
await dribba.service("nope");
} catch (error) {
if (error instanceof DribbaError && error.code === "resource_not_found") {
console.log(error.resolution); // what to do next, from the server
}
}
Rate limits
120 requests per 60 seconds per IP. After any call, dribba.rateLimit holds what
the last response advertised, so you can self-throttle instead of provoking a
429:
await dribba.company();
console.log(dribba.rateLimit); // { limit: 120, remaining: 118, reset: 47 }
Sandbox
Frozen fixtures with production shapes. Useful because a test that asserts "there are 9 services" breaks the day we publish the tenth — against the sandbox it does not.
const sandbox = new Dribba({ sandbox: true });
const services = await sandbox.services(); // services.sandbox === true
Idempotency
Idempotency-Key on any POST. Same key and same body replays the stored
response; same key with a different body is a 400.
await dribba.estimate(input, { idempotencyKey: crypto.randomUUID() });
Markdown, and the async export
Any page as markdown, and a one-request export of many pages:
const page = await dribba.markdown("/servicios");
const job = await dribba.startExport(["/", "/precios", "/servicios"]);
await dribba.waitForExport(job.id);
const everything = await dribba.exportResult(job.id);
Export jobs live in one server instance's memory and expire after 15 minutes; a 404 while polling means the request reached a different instance, not that the work was lost.
Beyond the REST API
- MCP — two remote servers over Streamable HTTP, no auth:
https://dribba.com/mcp(actions) andhttps://dribba.com/docs/mcp(docs). See https://dribba.com/developers/mcp. - Markdown of any page —
Accept: text/markdown, or append.md. - The whole site as an OKF bundle.
/ask— NLWeb: a natural-language question, verbatim passages back.
Skills and the Agent Plugins manifest
This repo doubles as a portable Agent Plugin:
plugin.json the manifest
mcp.json the two remote MCP servers
skills/ seven SKILL.md files describing what dribba.com exposes
Install the skills into your agent:
npx skills add dribbaengineering/dribba
skills/ is generated from what the site serves at
https://dribba.com/.well-known/agent-skills/. Edit the site, not the copy — the
copy is what drifts.
Requirements
Node 20+. Zero dependencies.
License
MIT. The data behind the API is CC BY 4.0 — cite "Dribba" and link the source URL.
Tools it offers (5)
What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.
list_servicesestimate_projectlist_projectscompany_factssubmit_contact_request
Signals
- Last commit
- Aug 2026
- Weekly downloads
- 40
- Weekly_downloads
- 44 weekly_downloads
Advanced
- Delivery
- dribba MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
com-dribba-dribba- Source
- github.com/dribbaengineering/dribba
- Hosted endpoint
https://dribba.com/mcp
github.com/dribbaengineering/dribba