Skip to main content
Glama

dribba

Официальный SDK и CLI для публичного API Dribba.

Никаких API-ключей, OAuth и аккаунтов. Каждый read-эндпоинт публичен. Если вы искали страницу с учётными данными — её нет, см. dribba.com/auth.md.

CLI

Ничего устанавливать не нужно:

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

Добавьте --sandbox, чтобы обращаться к замороженным фикстурам вместо продакшена.

Related MCP server: local-skills-mcp

MCP-сервер (stdio-мост)

MCP-сервер Dribba — удалённый, Streamable HTTP по адресу https://dribba.com/mcp. Если ваш клиент умеет только stdio, этот пакет поставляется с мостом:

{
  "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

Он передаёт только JSON-RPC и ничего больше, поэтому инструменты, ресурсы и версия протокола — всё, что объявляет сервер; второй реализации, которая могла бы разойтись, нет. Если ваш клиент умеет Streamable HTTP, пропустите мост и укажите URL напрямую.

Проверено с официальным @modelcontextprotocol/sdk через stdio: подключение, 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

Python-клиент находится в python/ и опубликован на PyPI как 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);
}

Ошибки

Каждый ответ 4xx/5xx вызывает DribbaError. Ориентируйтесь на code — он стабилен. title и detail — это текст, который может быть переформулирован.

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
  }
}

Лимиты запросов

120 запросов на 60 секунд с одного IP. После любого вызова dribba.rateLimit содержит то, что сообщил последний ответ, так что вы можете самоограничиваться, а не провоцировать 429:

await dribba.company();
console.log(dribba.rateLimit); // { limit: 120, remaining: 118, reset: 47 }

Песочница

Замороженные фикстуры с продакшен-формами. Это полезно, потому что тест, который утверждает «есть 9 сервисов», сломается в день, когда мы опубликуем десятый — против песочницы он не сломается.

const sandbox = new Dribba({ sandbox: true });
const services = await sandbox.services(); // services.sandbox === true

Идемпотентность

Idempotency-Key на любом POST. Тот же ключ и то же тело воспроизводят сохранённый ответ; тот же ключ с другим телом — 400.

await dribba.estimate(input, { idempotencyKey: crypto.randomUUID() });

Markdown и асинхронный экспорт

Любая страница в markdown и экспорт многих страниц одним запросом:

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);

Задания на экспорт живут в памяти одного экземпляра сервера и истекают через 15 минут; 404 при опросе означает, что запрос попал на другой экземпляр, а не что работа была потеряна.

За пределами REST API

  • MCP — два удалённых сервера через Streamable HTTP, без аутентификации: https://dribba.com/mcp (действия) и https://dribba.com/docs/mcp (документация). См. https://dribba.com/developers/mcp.

  • Markdown любой страницы — Accept: text/markdown или добавьте .md.

  • Весь сайт в виде пакета OKF.

  • /ask — NLWeb: вопрос на естественном языке, дословные отрывки в ответ.

Навыки и манифест Agent Plugins

Этот репозиторий также служит портативным Agent Plugin:

plugin.json          the manifest
mcp.json             the two remote MCP servers
skills/              seven SKILL.md files describing what dribba.com exposes

Установите навыки в своего агента:

npx skills add dribbaengineering/dribba

skills/ генерируется из того, что сайт отдаёт по адресу https://dribba.com/.well-known/agent-skills/. Редактируйте сайт, а не копию — именно копия расходится.

Требования

Node 20+. Ноль зависимостей.

Лицензия

MIT. Данные, лежащие в основе API, — CC BY 4.0: указывайте «Dribba» и ставьте ссылку на исходный URL.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A powerful MCP server that brings the skills.sh ecosystem directly to your AI agents, enabling effortless discovery, installation, and management of skills.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A production-ready MCP server that gives an LLM agent standalone-equivalent control over a Mineflayer Minecraft bot — movement, mining, crafting, inventory, combat, containers, chat, and much more — exposed as 110 strongly-typed tools across 23 groups, with full bot lifecycle management and dual (poll + push) event streaming.
    97 npm
    4
    MIT