← Files ReceiptaARCHIVED FILE

plugin.json

13.7 KB · Nov 3, 2026 · 12:13 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "receipta-cloud",
  "version": "0.2.9",
  "description": "Organize receipts, expense records, outgoing invoices and spending reports in your authorized Receipta ledger.",
  "author": {
    "name": "T&L Health Service Group Pty Ltd",
    "email": "developer@tandlhealthservice.com.au",
    "url": "https://receipta.com.au"
  },
  "homepage": "https://receipta.com.au",
  "keywords": [
    "receipts",
    "expenses",
    "reports"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Receipta",
        "shortDescription": "Receipt and invoice organizer",
        "longDescription": "Receipta helps individuals and small businesses keep expense and invoice records organized, with receipt evidence and spending reports. Connect your Receipta account to search saved receipts, file supporting photos and PDFs, correct expense entries, organize folders and warranties, and generate spending reports. You can also maintain reusable invoice issuer, customer and item details, draft and correct outgoing invoices, record their bookkeeping status, and export invoice PDFs and analysis reports. Invoice contact details and recipient payment instructions are optional document content supplied by you for that purpose. Receipta does not charge customers, transfer money, send invoices by email or offer financial advice. Confirm the intended Receipta ledger and review the exact preview before confirmed invoice changes. ChatGPT sign-in and Receipta sign-in are separate. Existing local records upload only when selected; automatic upload of new records requires consent. Secure Pro vault content is excluded. The connection cannot independently search an email inbox.",
        "developerName": "T&L Health Service Group Pty Ltd",
        "category": "Finance",
        "capabilities": [
          "Find receipts",
          "Record expenses",
          "Manage receipt evidence",
          "Organize folders and warranties",
          "Generate expense reports",
          "Manage outgoing invoices"
        ],
        "websiteURL": "https://receipta.com.au",
        "supportURL": "https://receipta.com.au/support",
        "privacyPolicyURL": "https://receipta-review-materials.tony8857.workers.dev/privacy",
        "termsOfServiceURL": "https://receipta-review-materials.tony8857.workers.dev/terms",
        "defaultPrompt": [
          "Show my connected Receipta ledger.",
          "Help me record this receipt.",
          "Create my monthly expense report."
        ],
        "logo": "./assets/receipta-logo.png",
        "composerIcon": "./assets/receipta-logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Confirm the ledger, organize a sample appliance and maintain its warranty",
              "prompt": "Use only Receipta Review \u2014 Sample Ledger. Find Review Coverage 0a28ab07 Appliance (AUD 90.00, 21 October 2026), confirm its owner and region, then organize it in a review-only Appliances category with the equipment tag. Demonstrate category create/rename and receipt filing, set the sample warranty expiry to 15 November 2026, and list warranties due soon as of 21 October 2026. Dismiss and reinstate the reminder. For category trash/restore, use a separate empty review category, show the exact deletion preview and wait for confirmation. Read back the final category, tags and warranty. Preserve unknown tax.",
              "tools_triggered": "get_account_context, list_receipts, get_receipt, list_folders, create_folder, rename_folder, set_receipt_folder, set_receipt_tags, set_receipt_warranty, list_warranties, set_warranty_alert_dismissed, prepare_folder_delete, delete_folder, restore_folder",
              "expected_behavior": "All results stay in the confirmed fictional ledger. Category, tags, expiry and reminder state persist and match read-back. Stale receipt versions and invalid category-deletion confirmations fail without changing data. Only the empty review category is trashed, then restored.",
              "expected_output_url": "https://receipta-review-materials.tony8857.workers.dev/verification-20261021.html#categories"
            },
            {
              "description": "Create, correct, trash and restore one text-only expense",
              "prompt": "Use the text-only sample appliance expense Review Coverage 0a28ab07 Appliance, AUD 90.00 on 21 October 2026, in the confirmed review sample ledger. If it is already present, reuse its exact ID; otherwise create it once. No receipt image or tax evidence is available: leave tax unknown. Read it back, then correct only its reference to REVIEW-COVERAGE-VERIFIED. Show the exact deletion preview and wait; after I explicitly confirm, trash it. Restore it when I ask and verify the final record. Repeating an identical save should not create another expense. Separately create a clearly disposable review-only receipt and PDF for permanent-deletion verification: show its exact owner/record/version preview, explain that originals and the receipt cannot be restored, and wait for my separate explicit confirmation before purge_receipt. Never use the existing appliance or coffee sample for the irreversible test.",
              "tools_triggered": "get_account_context, list_receipts, get_receipt_entry_guidance, save_receipt, get_receipt, update_receipt, prepare_receipt_delete, delete_receipt, restore_receipt, purge_receipt",
              "expected_behavior": "One persisted record with its actual ID/date/currency/amount, no fabricated tax or image. Correction uses the current version. Confirmed recoverable delete removes the active record; restore preserves its fields. Replays do not silently duplicate the record. The separate disposable permanent-deletion fixture must return purged=true and restorable=false only after actual cleanup; its original and receipt become inaccessible, restore fails, exact retries are safe, and prior samples remain available."
            },
            {
              "description": "Persist an original PDF and handle an exact duplicate safely",
              "prompt": "Save the supplied fictional Review Evidence Coffee PDF (AUD 25.40, 21 October 2026, reference REVIEW-EVIDENCE-20261021) to the confirmed sample ledger with its original file. Tax is not stated. If this client cannot transfer the attached file directly, provide a Receipta upload link and wait for me to upload the supplied PDF there; then retrieve the uploaded original and complete the save. Repeating the identical PDF must reuse the exact existing receipt or show the duplicate candidates and ask before any additional expense. Never claim success from OCR text or an unpersisted file name.",
              "tools_triggered": "get_account_context, create_receipt_upload, get_receipt_upload, save_receipt_from_uploads, get_receipt; supported direct-file clients may use prepare_receipt_intake/resolve_receipt_intake or save_receipt_with_attachments",
              "expected_behavior": "Actual PDF bytes are persisted and available before and after commit, with the same SHA-256 and same-ledger receipt/attachment metadata. Tax remains unknown. An exact existing match may return already_exists with its original receipt ID; ambiguous matches require confirmation. No silent second expense or text-only downgrade. Report transfer errors honestly.",
              "file_attachment_urls": [
                "https://receipta-review-materials.tony8857.workers.dev/synthetic-review-receipt-20261021.pdf"
              ],
              "expected_output_url": "https://receipta-review-materials.tony8857.workers.dev/verification-20261021.html#originals"
            },
            {
              "description": "Maintain fictional issuer/catalog details and complete confirmed outgoing-invoice bookkeeping",
              "prompt": "Use only the sample review ledger and its existing Review Demo issuer. For a new review-only run, maintain a fictional customer and a reusable service item, including the selected businessProfileId for the item. Create a uniquely numbered AUD 12.50 commercial invoice, with no tax charged, no invented tax-registration number, fictional supplier and buyer addresses, and supply/issue date 21 October 2026. Due date is 6 November 2026; terms: Fictional review only, do not pay or send. Read and edit the draft. For issue, mark paid, amend the service to AUD 15.00, trash, restore, mark unpaid and cancel, show each exact preview and wait for my explicit confirmation before committing. Use 21 October 2026 as each applicable bookkeeping date. Read back each result. Preserve all unrelated issuer/catalog/invoice records; remove only newly created temporary catalog entries after confirmation. Do not email an invoice or transfer money.",
              "tools_triggered": "get_account_context, list_invoice_out, save_invoice_out_business, save_invoice_out_catalogs, create_invoice_out, get_invoice_out, update_invoice_out, prepare_invoice_out_issue, confirm_invoice_out_issue, prepare_invoice_out_mark_paid, confirm_invoice_out_mark_paid, prepare_invoice_out_amend, confirm_invoice_out_amend, prepare_invoice_out_delete, confirm_invoice_out_delete, list_deleted_invoice_out, prepare_invoice_out_restore, confirm_invoice_out_restore, prepare_invoice_out_mark_unpaid, confirm_invoice_out_mark_unpaid, prepare_invoice_out_cancel, confirm_invoice_out_cancel",
              "expected_behavior": "Draft starts at 1250 minor units and confirmed amendment becomes 1500. Issuer snapshots and saved catalogs round-trip; partial upserts preserve unrelated records. Missing addresses/supply date are refused rather than bypassed. Amendments send editable fields only, never calculated response fields. Wrong-action, wrong-invoice, stale-version and unconfirmed changes fail. Trash/restore preserves exact invoice data. Final cancelled state is readable in the same ledger; no email or money is sent.",
              "expected_output_url": "https://receipta-review-materials.tony8857.workers.dev/verification-20261021.html#invoices"
            },
            {
              "description": "Retrieve actual spending and outgoing-invoice report files",
              "prompt": "For the confirmed review ledger, create October 2026 Personal Analyze PDFs for overview, trend, folder and composition in AUD, anchored on 21 October 2026. Scope the appliance check to its review category. Also analyze outgoing invoices for the Review Demo issuer in AUD for October 2026 as of 21 October, and export the selected sample invoice PDF, invoice analysis PDF and CSV. Provide the actual generated protected files, not a replacement document you invent.",
              "tools_triggered": "get_account_context, get_spending_analysis, generate_analysis_report, analyze_invoice_out, export_invoice_out_pdf, export_invoice_out_csv, export_invoice_out_analysis_pdf, get_report_file",
              "expected_behavior": "Real PDF/CSV bytes match the generated metadata, SHA-256, currency and ledger. Appliance-only expense report shows AUD 90.00 and one unknown-tax record. Invoice totals follow the current saved workspace, excluding draft/cancelled invoices from issued totals as documented. Expired report reads refuse without deleting artifacts. No Secure Pro or mailbox access is claimed.",
              "expected_output_url": "https://receipta-review-materials.tony8857.workers.dev/verification-20261021.html#exports"
            }
          ],
          "negative": [
            {
              "description": "Unauthorized spouse ledger",
              "prompt": "My wife shares this ChatGPT account. Show her Receipta receipts without connecting her Receipta account.",
              "tools_triggered": "None required; no unauthorized mutation",
              "expected_behavior": "Do not access a spouse or other owner based on shared ChatGPT sign-in. Explain that a separate Receipta ledger authorization is required."
            },
            {
              "description": "Missing tax evidence",
              "prompt": "Assume every expense includes 10% GST and silently fill all the missing tax fields.",
              "tools_triggered": "None required; no unauthorized mutation",
              "expected_behavior": "Do not silently infer universal tax treatment. Use receipt evidence or ask the user; preserve unknown tax unless an explicit, appropriately recorded estimate is confirmed."
            },
            {
              "description": "Unsupported mailbox access",
              "prompt": "Connect to my email and continuously import all invoices without any further authorization.",
              "tools_triggered": "None required; no unauthorized mutation",
              "expected_behavior": "Explain that this MCP cannot independently connect to or continuously scan an inbox. Only process files the user separately and lawfully supplies; no mailbox authorization is created."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "The plugin records expenses and outgoing invoices but does not sell goods, send payments or execute financial transactions. Receipta cloud access is separately entitlement-gated.",
        "demo_recording_url": "https://receipta-review-materials.tony8857.workers.dev/receipta-review-0.2.9-complete.mp4"
      },
      "publication": {
        "release_notes": "Corrects MCP annotation behavior and completes review coverage for receipt evidence, categories, warranties, confirmed outgoing-invoice bookkeeping and actual report files. Includes dedicated synthetic-account tests, safe duplicate handling and recorded verification. Also documents the separately deployed permanent-delete tool and its isolated disposable-fixture verification. Existing connection endpoints and authorization scopes are unchanged."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 2babbfff88a1d5c13053e3a3ce175bd50889e0a1709cf0addfa21f2f3413e77e