Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Beschreibung vom Entwickler (englisches Original)
Identify trading and football cards in a photo, search and correct them, with Cardmarket prices.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
NEOSATOSHI_API_KEY, NEOSATOSHI_ALLOWED_DIRSAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"card-recognition": {
"command": "npx",
"args": [
"-y",
"neosatoshi-card-mcp"
],
"env": {
"NEOSATOSHI_API_KEY": "your-value",
"NEOSATOSHI_ALLOWED_DIRS": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add card-recognition --env NEOSATOSHI_API_KEY=your-value --env NEOSATOSHI_ALLOWED_DIRS=your-value -- npx -y neosatoshi-card-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"card-recognition": {
"command": "npx",
"args": [
"-y",
"neosatoshi-card-mcp"
],
"env": {
"NEOSATOSHI_API_KEY": "your-value",
"NEOSATOSHI_ALLOWED_DIRS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"card-recognition": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"neosatoshi-card-mcp"
],
"env": {
"NEOSATOSHI_API_KEY": "your-value",
"NEOSATOSHI_ALLOWED_DIRS": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
NEOSATOSHI_ALLOWED_DIRS envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto Cookiebreed bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: NEOSATOSHI_API_KEY
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.7.0) kam vor 3 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Finance Toolkit, SolidInvoice, Korea Tax Calculator
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
MCP server for the NeoSatoshi card recognition API: lets Claude, Cursor, Codex and other MCP clients identify Pokémon, One Piece, Disney Lorcana, Yu-Gi-Oh!, Magic: The Gathering, Star Wars: Unlimited, Digimon Card Game and football (soccer) cards in a photo (binder pages work, football one card per photo) and get set, number, rarity, Cardmarket ID and daily prices as JSON (football: player, release and parallel), and search the card catalog.
neosatoshi-card-mcp, binary neosatoshi-card-mcprecognize_cards| Argument | Type | Description |
|---|---|---|
image_path | string | Local .jpg, .jpeg or .png, at most 12 MB (football 4 MB). ~ is expanded. |
image_url | string | Public https:// URL of a JPEG or PNG. Forwarded to the API as is; the server never downloads it. |
image_base64 | string | Base64 JPEG or PNG, a data:image/...;base64, prefix is accepted. |
tcg | enum | pokemon (default), onepiece, lorcana, yugioh, magic, star_wars_unlimited, digimon, football |
| include_images | boolean | Also return the catalog image of up to 10 recognised cards (from our CDN, at most 4 MB together), so the assistant can compare them with the photo. Default false. |
Give exactly one of image_path, image_url, image_base64. The result has a short text summary per card, the full API response as JSON text, and the same response as structuredContent. API errors come back as tool errors with the API's error code and message.
Example summary line:
1. Cinderace ex | Scarlet & Violet Black Star Promos (PR-SV) #163 | Promo | en | Cardmarket 796939 | trend 3.59 EUR | confidence 0.85 | 5 alternatives
Digimon line (alternative arts share the card number; the printing id and its variant follow the set):
1. WarGreymon | RELEASE SPECIAL BOOSTER Ver.1.0 [BT01-03] (BT1) #BT1-025 | BT1-025_P1 Alternative Art | SR | en | Cardmarket 620026 | trend 16.85 EUR | TCGplayer 9.54 USD | confidence 1
Digimon Card Game (digimon), English and Japanese: recognised by card number and name. When the picture cannot tell the alternative arts apart, print_unconfirmed is true, card_id is dg-c- without a price, and the printings come as alternatives, each with its price, to pick with correct_card. Cardmarket prices (EUR) for English and Japanese printings, TCGplayer (USD) for English only. Older Digimon products (the 1999 card game, the 2000 trading cards) are not recognised.
Football line (no prices yet, the parallel is a suggestion a person should confirm):
1. Niklas Beste | 2025-26 Topps Chrome Bundesliga #BA-NBE | Base Cards Autograph Variation | Sport-Club Freiburg | parallel Gold Wave Refractor /50 (suggested, confirm it) | serial 37 | 2 alternatives | no price yet
When the client sends a progress token (Claude Code, Claude Desktop and most clients do), the detection is streamed and each card is reported as soon as it is recognised: on an 8 card Lorcana page the first card came after about 8 seconds, all eight after 11.
The API identifies cards; it does not grade condition (a PSA, BGS or CGC slab, for football also SGC, comes back with the grade read from the label). One card usually takes about 4 seconds, about 10 to 12 seconds on the first request after a quiet period; a binder page with 9 cards about 17 seconds; a football card about 6 to 25 seconds. The client waits up to 120 seconds.
recognize_folder| Argument | Type | Description |
|---|---|---|
folder | string | Local folder with the photos (not its subfolders). ~ is expanded. |
tcg | enum | One game per folder. Default pokemon. |
max_files | integer | At most this many photos, in name order. Default 20, at most 100. |
output | enum | csv (default), json (API format) or both, written as a new file into the folder. |
One detection per photo, one credit per detected card. Existing files are never overwritten. It stops early on errors that would fail every photo (no credits, invalid key, demo limit). CSV columns: file, card_index, name, tcg, language, set_name, set_code, number, rarity, cardmarket_id, cardmarket_trend_eur, cardmarket_avg30_eur, tcgplayer_market_usd, confidence, graded, season, subset, parallel, request_id. Cells that start with =, +, - or @ get a leading ' so a spreadsheet does not run them.
search_cardsSearch the card catalog; results are full card objects like a detection returns (set, number, rarity, Cardmarket product ID, daily prices, images), at most 10, with has_more but no total. With request_id and card_index from recognize_cards it is a free correction search (5 per detected card within 24 hours, at most 5 results). Without them it is the paid card search: 0.5 credits when it returns a card.
Football: {"tcg": "football", "q": "kane chrome 2023"}, only q (the player, optionally with set or season words), no language, set or number, no prices yet. Each result carries ref for get_card.
correct_cardCorrect a detected card to the right catalog card (card_id from a correction search or from the card's alternatives). Free, within 24 hours, 3 times per card, only for the key that made the detection.
get_cardOne card by its card_id, for example to refresh a price. 0.5 credits when the card exists. For a wrong detection use search_cards with request_id and correct_card instead, both free.
Football: pass ref from the search_cards result (same key, within 24 hours). The card then comes with all parallels of its subset and their print runs. Without a valid ref the call is refused and free.
export_cardsThe cards of up to 20 detections (request_ids of recognize_cards or recognize_folder, within 48 hours) as the same file the NeoSatoshi website exports, built by the website's own export code: your condition for new cards, corrections made with correct_card, your saved presets, price rules and templates apply.
format csv/json (default csv): the custom export. preset (a saved preset id), or fields and json_mode (api = the documented card shape, custom = your fields).format tcgpowertools: the TCGPowerTools CSV for Cardmarket (your TCGPowerTools rules and saved comment; comment).format shopify: the Shopify product CSV, prices in the store currency (store_currency, else read from your connected store; variant_mode).format ebay: the eBay Seller Hub CSV for one site (marketplace, e.g. EBAY_DE; one_row_per_card).price_source, min_price, markup_percent and rounding, like the buttons of the website's pricing step (a markup or rounding replaces your saved price rules; markup_percent 0 = none). save_to_folder writes a new file into an allowed folder (never overwrites), otherwisethe file comes back in the answer (up to 100 KB). Free, own key only (demo detections keep no cards), not for football yet. The answer names cards it left out (skipped) and cards whose price depends on a special version (warnings).
list_export_presetsYour saved export presets (plus the built-in recommended CSV) and every field id export_cards takes. Free.
list_supported_gamesGames, card languages, tcg values, limits and card search prices. No API call, no cost.
| Call | Own key | Demo key |
|---|---|---|
recognize_cards | 1 credit per detected card, nothing without a card | 10 per day per network |
search_cards (card search), get_card | 0.5 credits when a card comes back | 10 searches, 3 lookups per day per network, never charged |
search_cards with request_id, correct_card | free | free |
export_cards, list_export_presets | free, 200 exports per day | not available (demo detections keep no cards) |
| Variable | Required | Description |
|---|---|---|
NEOSATOSHI_API_KEY | no | Your API key from https://neosatoshi.com/dashboard/settings/settings#api-keys (any paid plan). Without it the public demo key is used: 10 detections per day per network. |
NEOSATOSHI_ALLOWED_DIRS | no | Directories image_path may read from, separated by : (; on Windows). Unset means any readable image file. Set it to limit what an assistant can send. |
claude mcp add neosatoshi-cards -e NEOSATOSHI_API_KEY=your_key -- npx -y neosatoshi-card-mcp
With a directory restriction:
claude mcp add neosatoshi-cards -e NEOSATOSHI_API_KEY=your_key -e NEOSATOSHI_ALLOWED_DIRS="$HOME/Pictures/cards" -- npx -y neosatoshi-card-mcp
Leave out -e NEOSATOSHI_API_KEY=... to try it with the demo key.
Download neosatoshi-card-mcp.mcpb and open it: Claude Desktop installs the extension and asks for the optional API key and an optional allowed folder. Node.js comes with Claude Desktop.
Build it yourself with npm run build:mcpb (needs the dev dependencies).
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": { "neosatoshi-cards": { "command": "npx", "args": ["-y", "neosatoshi-card-mcp"], "env": { "NEOSATOSHI_API_KEY": "your_key", "NEOSATOSHI_ALLOWED_DIRS": "/Users/you/Pictures/cards" } } } }
~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": { "neosatoshi-cards": { "command": "npx", "args": ["-y", "neosatoshi-card-mcp"], "env": { "NEOSATOSHI_API_KEY": "your_key" } } } }
~/.codex/config.toml:
[mcp_servers.neosatoshi-cards]
command = "npx" args = ["-y", "neosatoshi-card-mcp"] env = { NEOSATOSHI_API_KEY = "your_key" }
cd mcp-server
npm install npm run build node dist/index.js # speaks MCP on stdin/stdout
Point any client at node /absolute/path/to/mcp-server/dist/index.js instead of npx.
.jpg, .jpeg and .png whose content starts with JPEG or PNG magic bytes are accepted, at most 12 MB (football 4 MB).NEOSATOSHI_ALLOWED_DIRS is checked against the resolved real path, so ../ and symlinks cannot escape it. Entries that do not exist grant nothing.https://europe-west1-neosatoshi.cloudfunctions.net/detectApi and .../cardsApi, and with include_images our card image CDN https://d1m1gwcombja0u.cloudfront.net (other image hosts are skipped).recognize_folder writes, and only new files named neosatoshi_cards_ - .csv / .json into the folder it read (same NEOSATOSHI_ALLOWED_DIRS check). image_url is passed to the API, which fetches and validates it; the server itself never fetches URLs.Authorization header. It is never logged or returned, and it is scrubbed from error messages.npm install
npm test # builds, then runs node:test (file safety and tool tests with a fake fetch, no live API calls)
server.json is for the official MCP registry (https://registry.modelcontextprotocol.io). Its name matches the mcpName in package.json (io.github.Cookiebreed/card-recognition-mcp); the registry checks GitHub ownership for io.github.* names.smithery.yaml is for Smithery.mcpb/manifest.json and `scNur der Anfang wird gezeigt; den Rest findest du im Repo