Skip to main content
Glama
README.md
# Rhumb

[![npm version](https://img.shields.io/npm/v/rhumb-mcp)](https://www.npmjs.com/package/rhumb-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![MCP Registry](https://img.shields.io/badge/MCP-Registry-green)](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

A3.7/5.0

Scored across 16 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness5/5

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.

Maintenance

ActivityInactive
ResponsivenessWithin a week