Favro cards, boards and collections over MCP: read, search, write, and resolve names to ids.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
A Model Context Protocol server for Favro, written in Go.
It speaks MCP over stdio and exposes Favro's REST API as 85 typed tools. Beyond
plain CRUD, it ships workflow tools built for natural-language use β search,
nameβID resolution, surgical description edits β so an LLM can act on Favro
without spending its rate-limit budget on lookup round-trips. Every mutating
tool supports dry_run.
Unofficial. Not affiliated with or endorsed by Favro.
Requirements: Go 1.27 to build from source; a Favro account with an API token. See CHANGELOG.md for release history.
Each tagged release publishes a favro-mcp_<version>.mcpb on the GitHub Releases page. Opening it installs the server into Claude Desktop and prompts for the three values it needs β your Favro email, an API token, and the organization id β so there is no config file to hand-edit.
The bundle carries a macOS universal binary, a Windows amd64 binary, and both Linux architectures behind a launcher that picks at startup. It is listed in checksums.txt and covered by the release signature; see Verifying a download.
Each tagged release publishes a single multi-arch favro-mcp.plugin zip on the GitHub Releases page. The bundle contains binaries for darwin amd64/arm64 and linux amd64/arm64, plus a launcher shim that picks the right one at runtime.
favro-mcp.plugin from the release.favro MCP server will appear with all tools registered.The bundled .mcp.json points at ${CLAUDE_PLUGIN_ROOT}/bin/favro-mcp so the install is relocatable; no host paths to edit.
For non-Cowork hosts (Claude Code via raw .mcp.json, MCP Inspector, custom integrations):
favro-mcp_<version>_<os>_<arch>.tar.gz (or .zip on Windows) from the release.favro-mcp binary somewhere on $PATH (or note its absolute path).Requires Go 1.27, the version go.mod declares. Under the default
GOTOOLCHAIN=auto an older toolchain downloads it on demand; under
GOTOOLCHAIN=local the build fails instead of downgrading.
Every release carries checksums.txt, an SBOM per archive, a keyless cosign signature over the checksum file, and build provenance attested by GitHub. The .mcpb bundle is in checksums.txt with the archives, so one signature covers all of it.
Builds are reproducible: -trimpath plus the commit's own timestamp, so rebuilding a tag gives byte-identical archives.
The server uses Favro's HTTP Basic Auth (user email + API token), scoped to one Favro organization at startup. Tools never accept organization_id β pass it once via env var or keyring and forget about it.
API tokens are user-scoped β for team installs, generate the token from a dedicated service-style Favro user with the minimum permissions you need, not from a personal account.
Two sources, checked in order; the first one that produces a complete (email, token, organization_id) triple wins:
FAVRO_USER_EMAIL, FAVRO_API_TOKEN, FAVRO_ORGANIZATION_ID.favro-mcp auth login (cross-platform: macOS Keychain, Windows Credential Manager, Linux Secret Service).Three more variables change how the server runs rather than who it runs as:
| Variable | Effect |
|---|---|
FAVRO_LOG_LEVEL | debug / info (default) / warn / error. Logs go to stderr; stdout carries only the MCP protocol stream. |
FAVRO_MCP_SKIP_VALIDATE | When set to anything non-empty, skips the startup call that checks the credentials against Favro. For offline testing; the server then fails on the first real tool call instead of at startup. |
FAVRO_ENABLE_DESTRUCTIVE | Set to true to register the delete-style tools. Off by default, and "off" means they are absent from tools/list rather than guarded β a host in an auto-approve mode runs a tool without prompting, so not registering it is the only guarantee. Anything the value cannot be read as true leaves them off. |
auth subcommandsfavro-mcp auth login is the one-shot setup for the keyring path. Re-run it to rotate the token.
favro-mcp doctor is the first thing to run when something does not work. It reports the build, which source the credentials came from, whether Favro accepts them, and whether the organization id names one the token can actually see β the failure that otherwise shows up as every tool returning not_found. Its output replaces ids and addresses with stable placeholders so it can be pasted into an issue; --show-ids prints the real values for your own screen, and says so.
After the binary or plugin is in place and credentials are stored, register the server in your MCP host config.
Default (keyring path, zero secrets in config):
Headless / CI (env vars) β passes secrets through from the shell, never literal:
The Cowork plugin ships its own .mcp.json pointing at ${CLAUDE_PLUGIN_ROOT}/bin/favro-mcp, so for that install path no manual config is needed.
Favro enforces tier-based rate limits per organization (Lite ~100/hr, Standard ~1000/hr, Enterprise ~10000/hr). A misbehaving agent can exhaust the quota for everyone in your org. The server caches resolution lookups (tags, users, widgets, columns) in-memory and supports force_refresh on every list/resolve tool to bust the cache when needed. List tools never auto-aggregate pages β each next_page requires an explicit follow-up call so the LLM can stop early.
Every mutating tool accepts dry_run: true and returns the would-be HTTP request (method, URL, body) plus a state-diff prediction without contacting Favro. Read tools never accept dry_run.
For sandboxed or pre-autonomy testing, --dry-run on the binary forces dry-run mode process-wide regardless of per-call input.
85 tools covering every Favro REST resource, plus workflow tools built for natural-language use. See docs/TOOLS.md for the full reference.
The ones worth knowing first:
| Tool | What it does |
|---|---|
favro_search_cards | Full-text search over card names and descriptions. Scope to a widget or collection. |
favro_get_card_full | One card with every id resolved to a name β saves 4β7 follow-up calls. |
favro_resolve_* | Turn a name into an id for tags, users, collections, widgets, columns, custom fields, groups. |
favro_append_card_description | Surgical description edits that return a unified diff. |
favro_ping | Local diagnostic: version, bound org, credential source. Never contacts Favro. |
Run favro-mcp doctor first β it answers most of the rows below directly, and its output is safe to paste into an issue.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/favro)<a href="https://allmcps.com/mcp/favro"><img src="https://allmcps.com/api/badge/favro?style=directory" alt="Favro on AllMCPs" /></a>