Rhumb
# Rhumb
[](https://www.npmjs.com/package/rhumb-mcp)
[](LICENSE)
[](https://registry.modelcontextprotocol.io/v0/servers?search=rhumb)
**Index ranks. Resolve routes.** Rhumb is an agent gateway for external tools: Index scores and compares services; Resolve routes supported capability calls through governed execution rails with receipts.
๐ [rhumb.dev](https://rhumb.dev) ยท โก [Quickstart](https://rhumb.dev/quickstart) ยท ๐งญ [Resolve](https://rhumb.dev/resolve) ยท ๐ต [Pricing](https://rhumb.dev/pricing) ยท ๐ [Leaderboard](https://rhumb.dev/leaderboard) ยท ๐ [Methodology](https://rhumb.dev/methodology) ยท ๐ [Trust](https://rhumb.dev/trust)
> **For agents:** See [`llms.txt`](llms.txt) for machine-readable documentation and [`agent-capabilities.json`](agent-capabilities.json) for structured capability metadata.
---
## Start in 30 seconds
### MCP (recommended)
```bash
npx -y --package rhumb-mcp@latest rhumb-mcp
```
Zero config. Discovery tools work immediately โ no signup, no governed API key.
For execution, pass your governed API key:
```bash
RHUMB_API_KEY=your_key npx -y --package rhumb-mcp@latest rhumb-mcp
```
[Get a governed API key โ](https://rhumb.dev/auth/login)
### API (read-only, no auth)
```bash
curl "https://api.rhumb.dev/v1/services/stripe/score"
# See supported execution routes before you execute
curl "https://api.rhumb.dev/v1/capabilities/email.send/resolve"
```
All read endpoints are public, including Resolve readiness checks. Estimate and execute require an authenticated payment path.
---
## What Rhumb does
Use Rhumb Index when an agent needs to discover and evaluate services. Use Rhumb Resolve when the task is on a supported capability path and you want governed execution with an explicit receipt.
Agents need external tools. Choosing the right one is hard โ not because of feature lists, but because of:
- auth and signup friction
- provisioning reality vs. marketing claims
- schema instability
- failure recovery when no human is watching
- hidden costs and rate limits
Rhumb makes those constraints visible before you commit.
### Best fit today
Rhumb is strongest today for **research, extraction, generation, and narrow enrichment**.
Treat broader multi-system business automation as future scope, not the current launch promise. Use Layer 2 capabilities for real work now, and treat Layer 3 as beta with an intentionally sparse public catalog.
<!-- GENERATED:README_PRODUCT_SURFACE_START -->
### Rhumb Index โ Discover & Evaluate
**1,038 scored services** across 50+ domains. Each gets an [AN Score](https://rhumb.dev/methodology) (0โ10) measuring execution quality, access readiness, and agent autonomy support.
- `find_services` โ Search indexed Services by what you need them to do
- `get_score` โ Get the full AN Score breakdown for a Service: execution quality, access readiness, autonomy level, tier label, and freshness
- `get_alternatives` โ Find alternative Services, ranked by AN Score
- `get_failure_modes` โ Get known failure patterns, impact severity, and workarounds for a service
- `discover_capabilities` โ Browse Capabilities by domain or search text
- `resolve_capability` โ Given a Capability ID, and optionally a credential mode, returns ranked providers with health status, cost per call, auth methods, endpoint patterns, execute guidance, and machine-readable recovery fields like recovery_hint.resolve_url, recovery_hint.credential_modes_url, and, when applicable, recovery_hint.alternate_execute_hint or recovery_hint.setup_handoff, plus typo recovery when the capability ID is wrong
> Discovery breadth is wider than current execution coverage. The index is broader than what Rhumb can execute today.
### Rhumb Resolve โ Execute
**415 capability definitions** across **16 callable providers today**. Resolve chooses the best-fit supported provider for the call using AN Score, availability / circuit state, estimated cost, latency proxy, credential mode, and explicit policy constraints.
- `execute_capability` โ Call a Capability through Rhumb Resolve
- `resolve_capability` โ Given a Capability ID, and optionally a credential mode, returns ranked providers with health status, cost per call, auth methods, endpoint patterns, execute guidance, and machine-readable recovery fields like recovery_hint.resolve_url, recovery_hint.credential_modes_url, and, when applicable, recovery_hint.alternate_execute_hint or recovery_hint.setup_handoff, plus typo recovery when the capability ID is wrong
- `estimate_capability` โ Estimate the active execution rail, cost, and health before a Capability call; anonymous direct system-of-record paths also preserve machine-readable execute_readiness handoffs
- `get_receipt` โ Retrieve an execution receipt by ID
- Budget enforcement, credential management, and execution telemetry included
> Best current fit: research, extraction, generation, and narrow enrichment. Treat general business-agent automation and broad multi-system orchestration as future scope, not the current launch promise.
<!-- GENERATED:README_PRODUCT_SURFACE_END -->
### Repository visibility map
| Surface | What it is for | Current honest boundary |
|---------|----------------|-------------------------|
| **Rhumb Index** | Free service discovery, AN Score lookup, alternatives, and failure-mode research | Broad discovery is not the same as execution readiness |
| **Rhumb Resolve** | Governed execution for supported capabilities with estimates, receipts, budgets, and telemetry | 18 runtime-callable providers today; best fit is research, extraction, generation, and narrow enrichment |
| **MCP package** | Agent-native entry point for Claude, Cursor, and other MCP clients | Discovery works without auth; execution needs a governed key, wallet-prefund, or x402 where supported |
| **API** | Public read endpoints plus authenticated execution endpoints | Use current API responses as source of truth for readiness and callable coverage |
### Three credential paths
| Path | How it works |
|------|-------------|
| **Rhumb-managed** | Rhumb holds the credential โ zero setup for the agent |
| **BYOK** | Bring your own provider API key. Rhumb routes, you authenticate |
| **Agent Vault** | Your key, encrypted and stored โ Rhumb injects at call time |
### Payment paths
- **Governed API key** โ sign up, get a key, prepaid credits
- **x402 / USDC** โ no signup, pay per call on-chain
### Resolve mental model
- **Service** = vendor Rhumb evaluates and compares
- **Capability** = executable action like `email.send`
- **Recipe** = deterministic multi-step workflow on top of capabilities (beta, sparse public catalog)
- **Layer 2 is the default path** โ start with governed API key or wallet-prefund on `X-Rhumb-Key`, discover a Service, choose a Capability, estimate, then execute
- **Start with managed superpowers first** โ bring BYOK or Agent Vault only when the workflow touches your own systems
- **Default auth for repeat traffic** = governed API key or wallet-prefund on `X-Rhumb-Key`
- **Bring BYOK or Agent Vault** only when provider control is the point
- **Use x402** when zero-signup per-call payment matters more than repeat throughput
Canonical onboarding map: <https://rhumb.dev/docs#resolve-mental-model>
---
## MCP tools
<!-- GENERATED:README_MCP_TOOLS_START -->
`rhumb-mcp` exposes **21 tools**:
**Discovery**
- `find_services` โ Search indexed Services by what you need them to do
- `get_score` โ Get the full AN Score breakdown for a Service: execution quality, access readiness, autonomy level, tier label, and freshness
- `get_alternatives` โ Find alternative Services, ranked by AN Score
- `get_failure_modes` โ Get known failure patterns, impact severity, and workarounds for a service
- `discover_capabilities` โ Browse Capabilities by domain or search text
- `resolve_capability` โ Given a Capability ID, and optionally a credential mode, returns ranked providers with health status, cost per call, auth methods, endpoint patterns, execute guidance, and machine-readable recovery fields like recovery_hint.resolve_url, recovery_hint.credential_modes_url, and, when applicable, recovery_hint.alternate_execute_hint or recovery_hint.setup_handoff, plus typo recovery when the capability ID is wrong
**Execution**
- `execute_capability` โ Call a Capability through Rhumb Resolve
- `estimate_capability` โ Estimate the active execution rail, cost, and health before a Capability call; anonymous direct system-of-record paths also preserve machine-readable execute_readiness handoffs
- `credential_ceremony` โ Get step-by-step instructions to obtain API credentials for a Service
- `check_credentials` โ Inspect live credential-mode readiness, globally or for a specific Capability
- `rhumb_list_recipes` โ List the current published Rhumb Layer 3 recipe catalog
- `rhumb_get_recipe` โ Get the full published definition for a Rhumb recipe, including input/output schemas and step topology
- `rhumb_recipe_execute` โ Execute a published Rhumb Layer 3 recipe once one is live in the public catalog
- `get_receipt` โ Retrieve an execution receipt by ID
**Billing**
- `budget` โ Check or set your call spending limit
- `spend` โ Get your spending breakdown for a billing period: total USD spent, call count, average cost per call, broken down by Capability and by provider
- `check_balance` โ Check your current Rhumb credit balance in USD
- `get_payment_url` โ Get a checkout URL to add credits to your Rhumb balance
- `get_ledger` โ Get your billing history: charges (debits), top-ups (credits), and auto-reload events
**Operations**
- `routing` โ Get or set how Rhumb auto-selects providers when you don't specify one in execute_capability
- `usage_telemetry` โ Get your execution analytics โ calls, latency, errors, costs, and provider health for your Rhumb usage
> Discovery spans 1,038 scored services, but current governed execution spans 16 callable providers.
> Note: Layer 3 recipe tooling is live, but the public catalog can still be empty. Use `rhumb_list_recipes` or visit `/recipes` before assuming a workflow exists.
> Best current fit: research, extraction, generation, and narrow enrichment. Treat general business-agent automation as future scope, not the current launch promise.
<!-- GENERATED:README_MCP_TOOLS_END -->
---
## API
Base URL: `https://api.rhumb.dev/v1`
| Endpoint | Auth | Purpose |
|----------|------|---------|
| `GET /services/{slug}/score` | No | Score breakdown |
| `GET /services/{slug}` | No | Service profile + metadata |
| `GET /services/{slug}/failures` | No | Known failure modes |
| `GET /search?q=...` | No | Search services |
| `GET /leaderboard/{category}` | No | Category rankings |
| `GET /capabilities` | No | Capability registry |
| `GET /capabilities/{id}/resolve` | No | Ranked providers + explicit `recovery_hint.*` fields |
| `POST /capabilities/{id}/execute` | Yes | Execute a capability |
| `GET /capabilities/{id}/execute/estimate` | Yes | Cost estimate |
| `GET /telemetry/provider-health` | No | Provider health status |
| `GET /telemetry/usage` | Yes | Your usage analytics |
| `GET /pricing` | No | Machine-readable pricing |
---
## Examples
See [`examples/`](examples/) for runnable scripts:
| Example | What it shows | Auth needed? |
|---------|--------------|-------------|
| [discover-and-evaluate.py](examples/discover-and-evaluate.py) | Search โ Score โ Failure modes | No |
| [resolve-and-execute.py](examples/resolve-and-execute.py) | Resolve โ machine-readable recovery handoff โ Estimate โ Execute | No for resolve, yes for estimate/execute |
| [budget-aware-routing.py](examples/budget-aware-routing.py) | Budget + cost-optimal routing | Yes |
| [dogfood-telemetry-loop.py](examples/dogfood-telemetry-loop.py) | Repeatable Resolve โ telemetry verification loop | Yes |
| [mcp-quickstart.md](examples/mcp-quickstart.md) | MCP setup for Claude, Cursor, etc. | Optional |
```bash
# Try discovery right now (no auth needed)
pip install httpx && python examples/discover-and-evaluate.py
# Try the resolve walkthrough right now (no auth needed for resolve)
python examples/resolve-and-execute.py
```
`resolve-and-execute.py` will still show the ranked providers plus any machine-readable recovery handoff Rhumb already identified. Set `RHUMB_API_KEY` only when you want to continue into estimate and execute.
---
## Docs
- [Agent Accessibility Guidelines](docs/AGENT-ACCESSIBILITY-GUIDELINES.md) โ making web interfaces usable by AI agents
- [AN Score Methodology](docs/AN-SCORE-V2-SPEC.md) โ scoring dimensions, weights, and rubrics
- [Architecture](docs/ARCHITECTURE.md) โ scoring engine design
- [API Reference](docs/API.md) โ endpoint details
- [Repo Boundary](docs/REPO-BOUNDARY.md) โ what stays public here vs. what lives in the private ops workspace
- [Security Policy](SECURITY.md) โ vulnerability reporting and security architecture
---
## Repo structure
```
rhumb/
โโโ packages/
โ โโโ api/ # Python API (Railway)
โ โโโ astro-web/ # Public website (Vercel)
โ โโโ mcp/ # MCP server (npm)
โ โโโ cli/ # CLI tooling
โ โโโ shared/ # Shared types/constants
โโโ examples/ # Runnable examples
โโโ docs/ # Public documentation only
โโโ scripts/ # Product tooling + verification scripts
โโโ artifacts/ # Curated public datasets only (raw proof outputs stay local/private)
โโโ llms.txt # Machine-readable docs for agents
โโโ agent-capabilities.json # Structured capability manifest
```
---
## Development
```bash
# API
cd packages/api && pip install -r requirements.txt && uvicorn app:app --reload
# MCP
cd packages/mcp && npm ci && npm run dev
# Web
cd packages/astro-web && npm ci && npm run dev
```
Node 24+ recommended (`.nvmrc` included).
---
## Score disputes
Every score is disputable. If you believe a score is inaccurate:
1. Read the public provider guide at [rhumb.dev/providers](https://rhumb.dev/providers)
2. [Open the score-dispute GitHub template](https://github.com/supertrained/rhumb/issues/new?template=score-dispute.md) with evidence
3. Or email [providers@supertrained.ai](mailto:providers@supertrained.ai?subject=Score%20Dispute) for a private path
We target an initial response within 5 business days. Negative findings remain visible. Rhumb does not accept payment to change scores.
---
## Links
- **Website:** [rhumb.dev](https://rhumb.dev)
- **npm:** [rhumb-mcp](https://www.npmjs.com/package/rhumb-mcp)
- **MCP Registry:** [Rhumb on MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=rhumb)
- **X:** [@pedrorhumb](https://x.com/pedrorhumb)
## License
[MIT](LICENSE)
TDQS
Scored across 16 tools
Most tools have distinct purposes, but some overlap exists: 'discover_capabilities' and 'find_tools' both involve searching for capabilities/tools, which could cause confusion. However, their descriptions clarify that 'discover_capabilities' is domain-focused while 'find_tools' is semantic search for agent tools, helping to mitigate ambiguity.
Tool names follow a consistent verb_noun pattern throughout, such as 'check_balance', 'discover_capabilities', and 'execute_capability'. All names use snake_case and clear, descriptive verbs, making the set predictable and easy to understand.
With 16 tools, the count is slightly high but reasonable for a comprehensive platform like Rhumb that manages capabilities, credentials, billing, and routing. It covers multiple aspects without feeling overly bloated, though it borders on the upper limit of a well-scoped set.
The tool set provides complete coverage for Rhumb's domain, including capability discovery, execution, credential management, cost estimation, billing, and routing strategies. There are no obvious gaps; agents can perform end-to-end workflows from setup to execution and monitoring without dead ends.