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로 검증했습니다: 연결, 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() });

마크다운 및 비동기 내보내기

모든 페이지를 마크다운으로, 그리고 여러 페이지를 한 번의 요청으로 내보내기:

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 참조.

  • 모든 페이지의 마크다운 — 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