Skip to main content
Glama

dribba

Dribba 公開 API の公式 SDK と CLI。

API キーも OAuth もアカウントも不要。 すべての読み取りエンドポイントは公開されています。認証情報のページをお探しなら、それはありません — 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 ブリッジ)

Dribba の MCP サーバーはリモートです — https://dribba.com/mcp の Streamable HTTP。クライアントが 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 経由で検証済み: 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

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

レート制限

IP ごとに 60 秒あたり 120 リクエスト。呼び出し後、dribba.rateLimit には最後のレスポンスが通知した値が保持されるため、429 を誘発する代わりに自己スロットルできます:

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

サンドボックス

本番と同じ形状の固定フィクスチャ。これは、「サービスが 9 つある」と主張するテストが、10 番目を公開した日に壊れるため便利です — サンドボックスに対しては壊れません。

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

冪等性

任意の POST に Idempotency-Key を指定します。同じキーと本文は保存されたレスポンスを再生します。同じキーで本文が異なる場合は 400 になります。

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

Markdown と非同期エクスポート

任意のページを Markdown として取得でき、多数のページを 1 リクエストでエクスポートできます:

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

エクスポートジョブは 1 つのサーバーインスタンスのメモリに存在し、15 分後に期限切れになります。ポーリング中に 404 が返された場合は、リクエストが別のインスタンスに到達したことを意味し、作業が失われたわけではありません。

REST API 以外

  • MCP — Streamable HTTP 上の 2 つのリモートサーバー、認証なし: 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