Local MCP server for Recite receipt processing
Project description
recite-mcp
mcp-name: io.github.rivradev/recite-mcp
recite-mcp is an MCP server for the Recite API. It provides the full documented Recite MCP surface for scans, transactions, imports, batch jobs, projects, summaries, webhooks, rules, usage, and exports, while preserving the local ledger/memory workflow for agents that want local-first bookkeeping.
Install
End users
Recommended:
uvx recite-mcp
Alternative (pipx):
pipx install recite-mcp
Alternative (pip):
python -m pip install recite-mcp
Contributors
python -m pip install -e .[dev]
pytest -q
python -m recite_mcp.server
Required Environment
Get an API key at https://recite.rivra.dev/settings/api (includes 30 free scans per month), then set RECITE_API_KEY (required to process receipts; server can still start without it so validate_setup() can report what's missing):
# Windows PowerShell
$env:RECITE_API_KEY="re_live_xxx"
# macOS/Linux
export RECITE_API_KEY="re_live_xxx"
Optional home override:
# Windows PowerShell
$env:RECITE_HOME="C:\path\to\recite-home"
# macOS/Linux
export RECITE_HOME="$HOME/.config/recite"
MCP Client Config
Copy-paste this config:
{
"mcpServers": {
"recite": {
"command": "uvx",
"args": ["recite-mcp"],
"env": {
"RECITE_API_KEY": "re_live_xxx"
}
}
}
}
If installed via pipx or pip, use:
{
"mcpServers": {
"recite": {
"command": "recite-mcp",
"args": [],
"env": {
"RECITE_API_KEY": "re_live_xxx"
}
}
}
}
Troubleshooting
MCP Registry ownership validation failed
- Symptom: Registry publish returns a PyPI ownership/README validation error.
- Fix: keep this exact line in packaged README:
mcp-name: io.github.rivradev/recite-mcp, then bump version and upload new PyPI release before publishing to Registry.
RECITE_API_KEY missing or invalid
- Symptom:
validate_setup()reportsmissing_api_keyor API requests are rejected. - Fix: set
RECITE_API_KEYin MCP clientenvconfig (preferred) or shell environment.
uvx command not found
- Symptom: terminal says
uvxis not recognized. - Fix: install
uvfirst, or use one of the alternatives:pipx install recite-mcppython -m pip install recite-mcp
recite-mcp command not found after install
- Symptom: command not recognized after
pipx/pipinstall. - Fix:
- For
pipx: runpipx ensurepath, then reopen terminal. - For
pip: run with module entrypoint:python -m recite_mcp.server
- For
MCP client starts but tools are unavailable
- Symptom: server appears configured but no tools/resources are listed.
- Fix:
- Confirm MCP config JSON is valid.
- Confirm command and args match your install method (
uvxvsrecite-mcp). - Restart MCP client after config changes.
Can't download from PyPI (uvx/pip)
- Symptom: install/run fails with network/proxy errors.
- Fix: ensure your environment can reach PyPI (or configure your proxy / custom index). If you're on a locked-down network, you may need to allowlist PyPI or use an internal mirror.
Quick local validation (no MCP client)
- Run
recite-mcp --validate(oruvx recite-mcp --validate) to print local config/health JSON. Exit code is0if an API key is present, otherwise1.
Main Features
API tools (40 total):
- Scans —
scan_receipt(file, URL, base64, or raw text; ephemeral mode),get_scan - Transactions — create, list (with filters), get, update, delete,
import_transactions(JSON list, CSV text, or CSV file) - Batch scans —
submit_batch_scans(1–20 items, async, webhook notification),get_batch_scan_status,get_batch_scan_results - Projects — list, create, update, delete
- Summaries —
get_summary(period, date range, group-by) - Webhooks — create, list, delete (
transaction.created/updated/deleted,batch.completed) - Rules — create, list, update, delete (vendor_category, default_project, processing_preference)
- Categories —
get_categories(17 built-in + custom),create_category,delete_category - Vendors —
get_vendors,create_vendor,delete_vendor - Usage —
get_usage(period, breakdown) - Exports —
export_transactions(CSV/JSON, optional file save)
Local tools:
process_receipt— scan + ledger append in one step (optional rename, dry-run, category hint)process_receipts_batch— scan a directory of images/PDFs (recursive, dry-run preview)summarize_ledger,export_ledger,add_ledger_correction— local CSV ledger managementupdate_memory,list_memory— persistent agent instruction storageget_config,validate_setup— configuration inspection and health check
Resources: recite://ledger, recite://memory, recite://health
Documentation
- User guide:
docs/user_guide.md
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file recite_mcp-0.1.8.tar.gz.
File metadata
- Download URL: recite_mcp-0.1.8.tar.gz
- Upload date:
- Size: 34.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6e716ab6b5ef96c72d27d0a4217394dd90355ecdfb56e82135dfe535d35fd78
|
|
| MD5 |
96ad29cb4cc54cd7a305a32b40e7197e
|
|
| BLAKE2b-256 |
95a53704863d96d42bbab593083169cb70c57816103766e2a23825e617333ef6
|
Provenance
The following attestation bundles were made for recite_mcp-0.1.8.tar.gz:
Publisher:
release.yml on rivradev/recite-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recite_mcp-0.1.8.tar.gz -
Subject digest:
a6e716ab6b5ef96c72d27d0a4217394dd90355ecdfb56e82135dfe535d35fd78 - Sigstore transparency entry: 1144224180
- Sigstore integration time:
-
Permalink:
rivradev/recite-mcp@aa80547b6c62e9577d8a95149feadd886f85ac6f -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/rivradev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aa80547b6c62e9577d8a95149feadd886f85ac6f -
Trigger Event:
push
-
Statement type:
File details
Details for the file recite_mcp-0.1.8-py3-none-any.whl.
File metadata
- Download URL: recite_mcp-0.1.8-py3-none-any.whl
- Upload date:
- Size: 22.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6804e950cf4039250cc60ae9f51a63ec033abbe5def4f2b144b9b86c41023e2d
|
|
| MD5 |
4c396035ad6084c391bf78dd1a75c266
|
|
| BLAKE2b-256 |
770852aadf4b3477f9ef5702399a82dbbd28572eaed909dcc0413011795dac30
|
Provenance
The following attestation bundles were made for recite_mcp-0.1.8-py3-none-any.whl:
Publisher:
release.yml on rivradev/recite-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
recite_mcp-0.1.8-py3-none-any.whl -
Subject digest:
6804e950cf4039250cc60ae9f51a63ec033abbe5def4f2b144b9b86c41023e2d - Sigstore transparency entry: 1144224213
- Sigstore integration time:
-
Permalink:
rivradev/recite-mcp@aa80547b6c62e9577d8a95149feadd886f85ac6f -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/rivradev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@aa80547b6c62e9577d8a95149feadd886f85ac6f -
Trigger Event:
push
-
Statement type: