freshcrate
Home > MCP Servers > formanator

formanator

Submit and manage Forma (https://joinforma.com) claims from the command line and Model Context Protocol (MCP) clients

Description

Submit and manage Forma (https://joinforma.com) claims from the command line and Model Context Protocol (MCP) clients

README

Formanator 🤖

Note

🦀 Formanator is now built with Rust and distributed through Homebrew and Crates.io! v2.x, built in TypeScript and distributed through npm, is still available.

Formanator allows you to:

  • Submit benefit claims to Forma and track progress from the command line, either one-by-one or in bulk
  • Understand your Forma benefits and track and submit claims from any Model Context Protocol (MCP) client, for example Copilot CLI, Visual Studio Code or Claude Code

With the power of large language models 🧠👀 - free of charge thanks to GitHub Models - it can even analyse your receipts and generate your claims automatically.

Screenshot of running formanator from a terminal

Installation

macOS or Linux via Homebrew

brew tap timrogers/tap && brew install formanator

macOS, Linux, or Windows via Cargo, Rust's package manager

  1. Install Rust on your machine, if it isn't already installed.
  2. Install the formanator crate by running cargo install formanator.
  3. Run formanator --help to check that everything is working and see the available commands.

macOS, Linux, or Windows via direct binary download

  1. Download the latest release for your platform. macOS, Linux, and Windows devices are supported.
  2. Add the binary to your PATH (or $PATH on Unix-like systems), so you can execute it from your shell/terminal. For the best experience, call it formanator (or formanator.exe on Windows).
  3. Run formanator --help to check that everything is working.

From source

git clone https://github.com/timrogers/formanator
cd formanator
cargo install --path .

Optional: PDF receipt support

To infer claim details for PDF receipts, you need to have GraphicsMagick and Ghostscript installed.

# macOS
brew install graphicsmagick ghostscript

Usage

Connecting to your Forma account

To get started, you'll need to connect Formanator to your Forma account:

  1. Run formanator login.
  2. Press Enter to open your browser to the Forma login page.
  3. Enter your email address and request a magic link.
  4. Copy the magic link from your email and paste it into the terminal.
  5. You're logged in 🥳

The access token is stored in ~/.formanatorrc.json (the same location used by the original Node.js implementation, so the two clients can share state).

Configuring an LLM provider (optional, but recommended)

When submitting a claim you can either provide every detail manually or let an LLM infer them. Two providers are supported:

  • GitHub Models — free, with a generous quota. Set the GITHUB_TOKEN environment variable to a GitHub Personal Access Token with read access to GitHub Models, or pass --github-token.
  • OpenAI — billed to your OpenAI account. Set the OPENAI_API_KEY environment variable, or pass --openai-api-key.

If both are configured, Formanator prefers OpenAI.

Submitting claims in bulk

Automatically submitting all receipts in a directory (recommended)

formanator submit-claims-from-directory --directory input/

All .jpg, .jpeg, .png, .pdf and .heic receipts in the directory will be analysed by the LLM. You'll be asked to confirm the inferred claim details for each receipt before it's submitted, and successfully-submitted receipts are moved into a processed/ subdirectory.

Manually submitting receipts using a CSV template

  1. Generate a template: formanator generate-template-csv (writes claims.csv).
  2. Fill in one row per claim. If you've configured an LLM, you can leave benefit and category blank to have them inferred from the other fields, or leave every column except receiptPath blank to have all claim details inferred from the receipt. Comma-separate paths in the receiptPath column to attach multiple receipts.
  3. Optionally validate up-front: formanator validate-csv --input-path claims.csv.
  4. Submit: formanator submit-claims-from-csv --input-path claims.csv.

Submitting a single claim

Option 1: Infer all claim details from the receipt (recommended)

formanator submit-claim --receipt-path receipt.jpg

Formanator will ask the LLM to extract the amount, merchant, purchase date, description, benefit and category, show you the result and ask you to confirm before submitting.

Option 2: Provide details manually, infer benefit and category

formanator submit-claim \
  --amount 2.28 \
  --merchant Amazon \
  --description "USB cable" \
  --purchase-date 2024-01-15 \
  --receipt-path USB.pdf

Option 3: Provide every detail manually

formanator submit-claim \
  --amount 2.28 \
  --merchant Amazon \
  --description "USB cable" \
  --purchase-date 2024-01-15 \
  --receipt-path USB.pdf \
  --benefit "Remote Life" \
  --category "Cables & Cords"

Use formanator benefits and formanator categories --benefit <benefit> to discover the valid values.

Listing claims

formanator list-claims
formanator list-claims --filter in_progress

Model Context Protocol (MCP) usage

Formanator can run as an MCP server over stdio so AI assistants can interact with your Forma account programmatically.

{
  "mcpServers": {
    "formanator": {
      "command": "/path/to/formanator",
      "args": ["mcp"]
    }
  }
}

The server exposes three tools:

  • list_benefits_with_categories — list all benefits with their categories and remaining balances.
  • list_claims — list claims, with optional filtering (currently only in_progress).
  • create_claim — create a new claim.

You must be logged in (formanator login) before starting the MCP server.

To build a binary without MCP support (smaller binary, fewer dependencies):

cargo install formanator --no-default-features

Development

cargo build              # build with default features (CLI + MCP)
cargo test --all-features
cargo clippy --all-features --all-targets -- -D warnings
cargo fmt --all

Release History

VersionChangesUrgencyDate
v3.0.0Latest release: v3.0.0High4/21/2026
v2.2.0# [2.2.0](https://github.com/timrogers/formanator/compare/v2.1.0...v2.2.0) (2026-04-21) ### Features * log deprecation warning, highlighting Formanator v3.x availability via Homebrew ([4d85392](https://github.com/timrogers/formanator/commit/4d853922706dcf3559b044b758e381e910b9635f)) High4/21/2026
v2.1.0# [2.1.0](https://github.com/timrogers/formanator/compare/v2.0.0...v2.1.0) (2026-03-23) ### Features * add --magic-link option to login command to log in with an existing magic link ([#594](https://github.com/timrogers/formanator/issues/594)) ([cd93a27](https://github.com/timrogers/formanator/commit/cd93a27efc54a49a68b9a7489561fe45aa3bb712)) Medium3/23/2026
v2.0.0# [2.0.0](https://github.com/timrogers/formanator/compare/v1.12.0...v2.0.0) (2025-12-04) ### Bug Fixes * fix login flow by opening Forma login page to allow user to enter email and request magic link ([cba7577](https://github.com/timrogers/formanator/commit/cba7577a2a3e7e90c08c2e1a6442293f911c5bdc)) ### BREAKING CHANGES * The `login` command now opens your browser to the Forma login page and asks you to enter your email address there, rather than entering it into the terminal. AfLow12/4/2025
v1.12.0# [1.12.0](https://github.com/timrogers/formanator/compare/v1.11.0...v1.12.0) (2025-08-31) ### Features * auto-paginate the `list-claims` command and allow filtering for in progress claims ([8581c99](https://github.com/timrogers/formanator/commit/8581c991e76f5455052d6b6e805c4fb82c494996)) Low8/31/2025
v1.11.0# [1.11.0](https://github.com/timrogers/formanator/compare/v1.10.0...v1.11.0) (2025-08-28) ### Features * remember email address in config file to make login simpler ([c7ed4f7](https://github.com/timrogers/formanator/commit/c7ed4f7a069e6c7eb5741f8dbe5bf199975b5927)) Low8/28/2025
v1.10.0# [1.10.0](https://github.com/timrogers/formanator/compare/v1.9.3...v1.10.0) (2025-08-28) ### Features * only show "Payout status" in `list-claims` output if present for at least one claim ([2c5a8e7](https://github.com/timrogers/formanator/commit/2c5a8e7d3736a931e0a82c2b625af19de4fe4189)) Low8/28/2025
v1.9.3## [1.9.3](https://github.com/timrogers/formanator/compare/v1.9.2...v1.9.3) (2025-07-06) ### Bug Fixes * prompt the LLM not to wrap inference results in a JSON code block ([#477](https://github.com/timrogers/formanator/issues/477)) ([34a9830](https://github.com/timrogers/formanator/commit/34a9830dbcc219cce23f1385ec1edea933b212ca)) Low7/6/2025
v1.9.2## [1.9.2](https://github.com/timrogers/formanator/compare/v1.9.1...v1.9.2) (2025-07-05) ### Bug Fixes * handle cases where the LLM returns inferred receipt details wrapped in a Markdown code block ([#476](https://github.com/timrogers/formanator/issues/476)) ([f6120a5](https://github.com/timrogers/formanator/commit/f6120a5b76e310fd1f3b7264f510a6eb2ed21cf4)) Low7/5/2025
v1.9.1## [1.9.1](https://github.com/timrogers/formanator/compare/v1.9.0...v1.9.1) (2025-07-01) ### Bug Fixes * update in-command help and docs to suggest using `npx formanator` ([473af56](https://github.com/timrogers/formanator/commit/473af5610d3bc185dc3e025d9c26d6df3c9bc96a)) Low7/1/2025
v1.9.0# [1.9.0](https://github.com/timrogers/formanator/compare/v1.8.2...v1.9.0) (2025-06-30) ### Features * add MCP server for asking questions about Forma benefits, tracking claims and submitting new claims ([ec8ddaa](https://github.com/timrogers/formanator/commit/ec8ddaa3ad379adce7b2f15a1238e6f329193ae1)), closes https://github.com/timrogers/formanator/pull/460 Low6/30/2025
v1.8.2## [1.8.2](https://github.com/timrogers/formanator/compare/v1.8.1...v1.8.2) (2025-06-30) ### Bug Fixes * Add support for Forma accounts with mobile access disabled ([880566c](https://github.com/timrogers/formanator/commit/880566c7aa94a4d36c7a1d2da0e18559eb86e5e1)), closes [#416](https://github.com/timrogers/formanator/issues/416) Low6/30/2025
v1.8.1## [1.8.1](https://github.com/timrogers/formanator/compare/v1.8.0...v1.8.1) (2025-06-05) ### Bug Fixes * improve Forma error handling to show error message returned by Forma ([18f8fae](https://github.com/timrogers/formanator/commit/18f8faecc9684c1b0efcff48b2ce065615ea695b)) Low6/5/2025
v1.8.0# [1.8.0](https://github.com/timrogers/formanator/compare/v1.7.1...v1.8.0) (2025-06-04) ### Features * add `list-claims` command for viewing previously submitted claims ([e1f0c8c](https://github.com/timrogers/formanator/commit/e1f0c8c4f94e9bdb0dac3dee2503452914d73ee1)) Low6/4/2025
v1.7.1## [1.7.1](https://github.com/timrogers/formanator/compare/v1.7.0...v1.7.1) (2025-06-02) ### Bug Fixes * handle expired Forma credentials with better error message ([79cb9c2](https://github.com/timrogers/formanator/commit/79cb9c237271b08f0ed558031de2c25ea54b71f1)) Low6/2/2025
v1.7.0# [1.7.0](https://github.com/timrogers/formanator/compare/v1.6.0...v1.7.0) (2025-06-02) ### Features * add submit-receipts-from-directory command for batch receipt processing ([0955edc](https://github.com/timrogers/formanator/commit/0955edcf7f2210fcc53886b267488c2a836492f7)) Low6/2/2025
v1.6.0# [1.6.0](https://github.com/timrogers/formanator/compare/v1.5.0...v1.6.0) (2025-06-02) ### Features * update submit-claim command to allow inferring all details from the receipt ([#422](https://github.com/timrogers/formanator/issues/422)) ([c8a73c5](https://github.com/timrogers/formanator/commit/c8a73c5b4d8da863cc04ab1c6d81c69856c69214)) Low6/2/2025
v1.5.0# [1.5.0](https://github.com/timrogers/formanator/compare/v1.4.0...v1.5.0) (2025-05-31) ### Bug Fixes * auto-fix ESLint issues ([cf7f2f5](https://github.com/timrogers/formanator/commit/cf7f2f53aa745e8001031843d7c828648d649f71)) * submit claim when details not inferred ([8facd8a](https://github.com/timrogers/formanator/commit/8facd8a8a456b55f1aa9e6e752dd4c5ad7f5ad7c)) ### Features * add support for GitHub Models ([9f0cbb2](https://github.com/timrogers/formanator/commit/9f0cbb2f2516f7d42a0f0Low5/31/2025
v1.4.0# [1.4.0](https://github.com/timrogers/formanator/compare/v1.3.0...v1.4.0) (2023-08-01) ### Bug Fixes * avoid loading benefits and categories from Forma for every claim in ([a0cc99d](https://github.com/timrogers/formanator/commit/a0cc99dacac73bfa7a986b5c21e88772f0df8ede)) * correct spelling mistake in help text for `submit-claims-from-csv` ([9ca524f](https://github.com/timrogers/formanator/commit/9ca524f48ccf614d79fa1071573ce7a7ce1cd42c)) * print the correct error message when submitting a clLow8/1/2023
v1.3.0# [1.3.0](https://github.com/timrogers/formanator/compare/v1.2.0...v1.3.0) (2023-07-31) ### Features * expose current version in CLI with `--version`/`-V` ([7636259](https://github.com/timrogers/formanator/commit/7636259d622f8de80ddb954f5e608cc27920aea7)) Low7/31/2023
v1.2.0# [1.2.0](https://github.com/timrogers/formanator/compare/v1.1.0...v1.2.0) (2023-07-30) ### Bug Fixes * use a cheaper and more appropriate OpenAI model ([b5895db](https://github.com/timrogers/formanator/commit/b5895dbdd49172529fa708523d8cd7de0e6eb5d8)) ### Features * remove restriction on Node.js versions before v18 ([974d02b](https://github.com/timrogers/formanator/commit/974d02b1ba563768825da3bb4e884f1df930b24c)) Low7/30/2023
v1.1.0# [1.1.0](https://github.com/timrogers/formanator/compare/v1.0.0...v1.1.0) (2023-07-30) ### Bug Fixes * rename the `--access_token` option to `--access-token` ([f262143](https://github.com/timrogers/formanator/commit/f262143c8e40b03c64dd3bb5bb82871944198347)) ### Features * add support for inferring the benefit and category for a single claim with OpenAI ([41f59b1](https://github.com/timrogers/formanator/commit/41f59b11c073e4bbd914f5dae5718275e8ac1415)) Low7/30/2023
v1.0.0# 1.0.0 (2023-07-30) ### Features * initial release ([2e763a3](https://github.com/timrogers/formanator/commit/2e763a3a10eb2ce66fa5635938508d1a06080ab5)) Low7/30/2023

Dependencies & License Audit

Loading dependencies...

Similar Packages

sofos-codeAI coding agent for your terminal, implemented in pure Rustv0.2.2
openpaeanOpen source AI agent CLI with executor framework (a8e, Claude Code), gateway relay, MCP support, and scrolling TUI0.7.15
paeanPaean AI CLI - Claude Code-like AI agent with local MCP integration, task management, and autonomous worker mode0.10.19
edgecrabEdgeCrab 🦀 A Super Powerful Personal Assistant inspired by NousHermes and OpenClaw — Rust-native, blazing-fast terminal UI, ReAct tool loop, multi-provider LLM support, ACP protocol, gateway adaptersv0.8.0
PlexMCP-OSS🌐 Build a robust MCP gateway platform to enhance your Plex experience with seamless integration and reliable performance.main@2026-04-21