tribb ships a hosted Model Context Protocol server so an AI client — Claude, an agent, your own tooling — can read and triage your feeds directly. The tools mirror the same canonical actions as the web app and the trib CLI: subscribe, search, read, triage, and generate a digest. An action taken over MCP shows up everywhere else in your account.

Endpoint & transport

The server is served under /api/mcp/<transport>. The canonical endpoint is the Streamable HTTP transport:

https://tribb.app/api/mcp/mcp

The same handler also answers the SSE transport at https://tribb.app/api/mcp/sse for clients that need it. Prefer /mcp (Streamable HTTP) unless your client only speaks SSE.

Auth

The server requires a Bearer token on every request — there is no anonymous access. The token is a tribb API key, minted from Settings and verified by Better Auth's API-key plugin.

  1. Sign in at tribb.app/settings → the CLI & MCP tokens panel.
  2. Click + mint a token. It is shown once (prefix trib_) — copy it immediately.
  3. Send it as Authorization: Bearer trib_....

The token resolves to your user, and MCP tools only ever act on your account. Agent-token verification is not rate limited, so high-frequency clients won't be throttled on auth.

Client setup

Claude Code

claude mcp add --transport http tribb https://tribb.app/api/mcp/mcp \
  --header "Authorization: Bearer trib_xxxxxxxx"

Generic JSON config

Most desktop clients (Claude Desktop, and others that read an mcpServers block) take a remote server like this:

{
  "mcpServers": {
    "tribb": {
      "url": "https://tribb.app/api/mcp/mcp",
      "headers": {
        "Authorization": "Bearer trib_xxxxxxxx"
      }
    }
  }
}

Tools

Tool Arguments Does
list_subscriptions List your feeds with health metadata.
search_articles unread?, saved?, feedId?, limit? (1–100) List items, newest first, with optional filters.
get_article itemId Fetch one item's full content — extracted full text when available.
subscribe url Subscribe to a feed. Any site URL works; discovery runs server-side.
update_state itemIds[], action Triage one or more items.
get_digest sinceHours? (1–168) Generate an AI catch-up digest of unread items, on your key.
submit_feedback type? (bug/idea/praise/other), body File product feedback or an issue.
list_feedback status?, type?, limit? (1–200) List feedback. Operators see all; others see only their own.
admin_stats Owner-only: global product analytics.

update_state actions

update_state takes an array of itemIds and one action, applied to all of them:

save · dismiss · downrank · read · unread · unsave · archive · unarchive

These are the canonical triage verbs shared across web, CLI, and MCP. Every action is logged and trains your ranking — prefer downrank over dismiss when a source is low-value but not unwanted.

Notes & limits

  • Your account only. The Bearer token scopes every call to the user who minted it; there is no cross-account access.
  • BYOK for AI. get_digest runs on the AI key you set in Settings. Without one, it returns an error rather than billing anyone.
  • Operator tools gate themselves. list_feedback returns only your own submissions unless you're an operator, and admin_stats is owner-only — non-owners get a forbidden result.
  • No auth rate limit on API-key verification, so agent clients aren't throttled on the token check.

Prefer a shell to tool calls? The trib CLI exposes the same operations with the same token.