recite-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RECITE_HOME | No | Override the default home directory for local ledger/memory files (default: $HOME/.config/recite) | |
| RECITE_API_KEY | Yes | Your Recite API key (required to process receipts; server can start without it but validate_setup will report missing) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| process_receiptD | – |
| process_receipts_batchD | – |
| scan_receiptA | Scan a receipt using the Recite API to extract financial data. Provide exactly one input: file_path, image_url, image_base64, or raw_text. Args: file_path: Local path to an image. image_url: Publicly accessible URL (must use https). image_base64: Base64-encoded image data. raw_text: Pre-extracted text. auto_save: Auto-create a transaction if successful. Requires project_id. save_threshold: Confidence threshold for auto-saving. project_id: Project UUID. Required if auto_save is True. status: Target status of the transaction. image_type: MIME type hint for the image. idempotency_key: Key to prevent duplicate processing. metadata: Custom key-value data. ephemeral: Process without saving scan records server-side. Cannot be True if auto_save is True. |
| get_scanD | – |
| create_transactionA | Create a transaction in the Recite API. Required fields: date: Transaction date (YYYY-MM-DD). amount: Monetary amount (use 'amount', not 'total'). transaction_type: One of Expense, Income, Asset, Liability, Equity. category: Category string. payment_method: Payment method string (e.g. "Credit Card"). Optional fields: vendor, description, project_id, metadata, tags. Note: The local ledger uses 'total' for the same concept. When moving data from local ledger to API transactions, map 'total' -> 'amount'. |
| list_transactionsD | – |
| get_transactionD | – |
| update_transactionD | – |
| delete_transactionD | – |
| import_transactionsA | Import multiple transactions at once. Provide exactly one data source: transactions (list), csv_text, or csv_file_path. Args: transactions: List of transaction objects to import. csv_text: Raw CSV string content. csv_file_path: Local path to a CSV file. all_or_nothing: If True, fails the entire import if any transaction fails. project_id: Apply all transactions to this project UUID. |
| submit_batch_scansA | Submit multiple receipts for asynchronous batch processing. Args: items: List of 1-20 task items. Each must provide exactly one of file_path, image_url, or image_base64. auto_save: Auto-create transactions for successful scans. save_threshold: Confidence threshold for auto-saving. project_id: Apply all auto-saved transactions to this project UUID. webhook_url: URL to call when batch completes. webhook_secret: HMAC-SHA256 signature secret for the webhook. |
| get_batch_scan_statusD | – |
| get_batch_scan_resultsD | – |
| list_projectsD | – |
| create_projectD | – |
| update_projectD | – |
| delete_projectD | – |
| get_summaryD | – |
| create_webhookA | Create a webhook subscription. Args: url: Webhook endpoint URL. events: List of event types. Valid values: transaction.created, transaction.updated, transaction.deleted, batch.completed. secret: Optional HMAC-SHA256 signing secret. |
| list_webhooksD | – |
| delete_webhookD | – |
| create_ruleA | Create an automation rule. Args: rule_type: One of: vendor_category, default_project, processing_preference. condition: Condition object (e.g. {"vendor": "Starbucks"}). action: Action object (e.g. {"set_category": "Coffee"}). priority: Optional priority integer (higher = first). |
| list_rulesD | – |
| delete_ruleD | – |
| update_ruleA | Partially update a rule. The rule_type cannot be changed. Args: rule_id: UUID of the rule to update. changes: Fields to update. All are optional: active (bool), priority (int), condition (object, simple rules), action (object, simple rules), conditions (array, transaction_rule), actions (array, transaction_rule), condition_operator ("AND" or "OR", transaction_rule). |
| get_categoriesA | List all categories: default (17 built-in) and custom user-added ones. |
| create_categoryA | Add a custom category. Duplicates (case-insensitive) are rejected. Max 100 custom categories. Args: name: Category name to add. |
| delete_categoryA | Remove a custom category by name. Default categories cannot be deleted. Args: name: Exact category name to remove (unencoded). |
| get_vendorsA | List all custom vendors for the authenticated user. |
| create_vendorA | Add a custom vendor. Duplicates (case-insensitive) are rejected. Max 500 vendors. Args: name: Vendor name to add. |
| delete_vendorA | Remove a custom vendor by name. Args: name: Exact vendor name to remove (unencoded). |
| get_usageD | – |
| export_transactionsD | – |
| upload_bank_statementD | – |
| list_bank_statementsD | – |
| get_bank_statementD | – |
| delete_bank_statementD | – |
| export_bank_statementD | – |
| list_bank_transactionsD | – |
| get_bank_transactionD | – |
| update_bank_transactionD | – |
| delete_bank_transactionD | – |
| create_reconciliation_linkD | – |
| list_reconciliation_linksD | – |
| update_reconciliation_linkD | – |
| delete_reconciliation_linkD | – |
| run_auto_matchD | – |
| get_reconciliation_summaryD | – |
| get_reconciliation_recommendationsD | – |
| export_reconciliationD | – |
| update_memoryD | – |
| list_memoryD | – |
| add_ledger_correctionD | – |
| summarize_ledgerD | – |
| export_ledgerD | – |
| get_configD | – |
| validate_setupD | – |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| recite_ledger | |
| recite_memory | |
| recite_health |
TDQS
Scored across 57 tools
Many tools lack descriptions, forcing reliance on names alone. Overlapping operations like scan_receipt, process_receipt, submit_batch_scans, and get_batch_scan_results are difficult to differentiate, leading to potential misselection.
Tool names mostly follow a verb_noun pattern, but there is inconsistency in verb choice (e.g., 'get' vs 'list' for different entities) and some names are compound (e.g., 'process_receipts_batch'). Overall readable but not perfectly uniform.
With 57 tools, the server is overly broad, covering CRUD for many entities, scanning, batch processing, reconciliation, rules, webhooks, memory, and configuration. This bloat exceeds the typical well-scoped range and risks overwhelming agents.
Most entities have basic CRUD operations, but there are notable gaps like missing 'get_project' and 'get_vendor' (only list). The domain coverage is fairly extensive but not fully systematic, with some one-off tools like 'validate_setup'.