Taggun MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Scan receipts with Taggun OCR from a URL or file and read receipt-validation campaigns.
6 tools: 3 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http taggun https://taggun.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The description mentions "credentials".
What this check looks forMatched text
description: "...P addresses, localhost, internal names, credentials or non-default ports. POST /api/receipt..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
6 tools
Changes things 3Claude Code: ask
taggun_scan_receipt_base64WRITE: this scan counts against YOUR Taggun quota and plan (free for the first 30 days or 1,000 scans, then billed per scan by Taggun), even if the receipt fails validation; it is …No findings
Why it is in this group
- The description's first verb is "write": a word for a change.
Description, as the server wrote it WRITE: this scan counts against YOUR Taggun quota and plan (free for the first 30 days or 1,000 scans, then billed per scan by Taggun), even if the receipt fails validation; it is never retried automatically. Document content is not logged by this server. Extract structured data from a receipt or invoice sent as base64 (JPEG, PNG, GIF, HEIF/HEIC or PDF; the base64 text is capped at 2,000,000 characters, about 1.5 MB of file; for larger files use taggun_scan_receipt_url). POST /api/receipt/v1/{simple|verbose}/encoded.
Annotations the server declares
- title: Scan a receipt or invoice from base64 data
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
taggun_scan_receipt_urlWRITE: this scan counts against YOUR Taggun quota and plan (free for the first 30 days or 1,000 scans, then billed per scan by Taggun), even if the receipt fails validation; it is …1 finding
Why it is in this group
- The description's first verb is "write": a word for a change.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...P addresses, localhost, internal names, credentials or non-default ports. POST /api/receipt..."
Description, as the server wrote it WRITE: this scan counts against YOUR Taggun quota and plan (free for the first 30 days or 1,000 scans, then billed per scan by Taggun), even if the receipt fails validation; it is never retried automatically. Document content is not logged by this server. Extract structured data (merchant, date, total, tax, and in verbose mode line items) from a receipt or invoice at a public https URL (JPEG, PNG, GIF, HEIF/HEIC or PDF up to 5 pages, max 20 MiB). The URL must be a public host name: no IP addresses, localhost, internal names, credentials or non-default ports. POST /api/receipt/v1/{simple|verbose}/url.
Annotations the server declares
- title: Scan a receipt or invoice from a URL
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
taggun_validate_receipt_campaign_urlWRITE: this scan counts against YOUR Taggun quota and plan (free for the first 30 days or 1,000 scans, then billed per scan by Taggun), even if the receipt fails validation; it is …No findings
Why it is in this group
- The name "taggun_validate_receipt_campaign_url" says "validate": a word for reading.
- The description's first verb is "write": a word for a change.
Description, as the server wrote it WRITE: this scan counts against YOUR Taggun quota and plan (free for the first 30 days or 1,000 scans, then billed per scan by Taggun), even if the receipt fails validation; it is never retried automatically. Document content is not logged by this server. Scan a receipt at a public https URL and check it against the rules of a campaign stored on your Taggun account (dates, merchants, products, balance owing, fraud checks). Returns pass/fail with reasons. Needs the Campaign Validation feature on your Taggun plan; use taggun_list_campaigns for the ids. Same URL rules as taggun_scan_receipt_url. POST /api/validation/v1/campaign/receipt-validation/url.
Annotations the server declares
- title: Validate a receipt against a stored campaign
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 3Claude Code: allow
taggun_export_reference_dataRead the reference data stored on your Taggun account as CSV: product_categories (the category taxonomy), known_merchants (merchant names and locations used for matching) or produc…No findings
Why it is in this group
- The description's first verb is "read": a word for reading.
Description, as the server wrote it Read the reference data stored on your Taggun account as CSV: product_categories (the category taxonomy), known_merchants (merchant names and locations used for matching) or product_codes (expected product codes). Read-only; does not use a scan. The text is cut at 40,000 characters. GET /api/account/v1/{product-categories|known-merchants|known-product-codes}/export.
Annotations the server declares
- title: Export account reference data
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
taggun_get_campaignThe stored validation rules of one campaign (dates, merchants, products, fraud checks, SmartValidate prompts).No findings
Why it is in this group
- The name "taggun_get_campaign" says "get": a word for reading.
Description, as the server wrote it The stored validation rules of one campaign (dates, merchants, products, fraud checks, SmartValidate prompts). Does not use a scan. GET /api/validation/v1/campaign/settings/{campaignId}.
Annotations the server declares
- title: Get a validation campaign's rules
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
taggun_list_campaignsList the ids of the receipt-validation campaigns stored on your Taggun account (an empty list is normal).No findings
Why it is in this group
- The name "taggun_list_campaigns" says "list": a word for reading.
Description, as the server wrote it List the ids of the receipt-validation campaigns stored on your Taggun account (an empty list is normal). Does not use a scan. Needs the Campaign Validation feature; without it Taggun answers that the feature must be enabled. GET /api/validation/v1/campaign/settings/list.
Annotations the server declares
- title: List validation campaigns
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http taggun https://taggun.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__taggun__taggun_list_campaigns",
"mcp__taggun__taggun_get_campaign",
"mcp__taggun__taggun_export_reference_data"
],
"ask": [
"mcp__taggun__taggun_scan_receipt_url",
"mcp__taggun__taggun_scan_receipt_base64",
"mcp__taggun__taggun_validate_receipt_campaign_url"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as taggun. Review it before you use it.