Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

SpellBook Finance

REMOTE · API.SPELLBOOK-FINANCE.COM · SCANNED SEP 28

Magic: The Gathering card prices, movers, arbitrage, sealed box EV, and seller inventory tools.

66 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 21414 tokens (~131/item across 163 items; 100 tools + 63 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management8
  • Stability check failed: schema churn in the 3 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 36 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 102 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the SpellBook Finance MCP server?

SpellBook Finance is a hosted endpoint at https://api.spellbook-finance.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.spellbook-finance.com

# add to Claude Code
claude mcp add --transport http com-spellbook-finance-mcp 'https://api.spellbook-finance.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-spellbook-finance-mcp": {
      "url": "https://api.spellbook-finance.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-spellbook-finance-mcp": {
      "type": "http",
      "url": "https://api.spellbook-finance.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-spellbook-finance-mcp]
url = "https://api.spellbook-finance.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-spellbook-finance-mcp": {
      "type": "remote",
      "url": "https://api.spellbook-finance.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-spellbook-finance-mcp --url 'https://api.spellbook-finance.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-spellbook-finance-mcp:
    url: "https://api.spellbook-finance.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-spellbook-finance-mcp": {
      "Transport": "http",
      "Url": "https://api.spellbook-finance.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-spellbook-finance-mcp -t streamable-http -u 'https://api.spellbook-finance.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-spellbook-finance-mcp": {
      "type": "http",
      "url": "https://api.spellbook-finance.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 +1
    • A breaking change shipped without a version bump: still 0.1.0 ▼ security
    • New tool “spellbook_sealed_portfolio_open”, which the server declares destructive security
    • Tool “spellbook_japan_source_scan” rewrote its description, which is the text the model reads security
    • Tool “spellbook_printings_search” rewrote its description, which is the text the model reads security
    • Tool “spellbook_sealed_listing_pause” rewrote its description, which is the text the model reads security
    • Tool “spellbook_sealed_listing_preview” rewrote its description, which is the text the model reads security
    • Tool “spellbook_sealed_listing_submit” rewrote its description, which is the text the model reads security
    • Tool “spellbook_sealed_portfolio” rewrote its description, which is the text the model reads security
    • “spellbook_sealed_listing_submit” added a required parameter “expectedAskUsd”, so existing callers break ▼ functional
    • New resource “japanese-pokemon-sealed-box-shapes” functional
    • New resource “japanese-pokemon-single-language-prices” functional
    • New resource “mercari-japan-pokemon-landed-costs” functional
    • New tool “spellbook_sealed_recovered_component_record” functional
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “cohortId” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “importChargesUsd” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “importDutyRate” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “inboundShippingUsd” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “otherAcquisitionUsd” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “otherSellingUsd” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “outboundShippingUsd” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “proxyFeeUsd” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “sellingFeeRate” cosmetic
    • “spellbook_pokemon_arbitrage_spreads” added an optional parameter “sellingFixedFeeUsd” cosmetic
    • “spellbook_printings_search” added an optional parameter “language” cosmetic
    • “spellbook_sealed_listing_pause” added an optional parameter “channel” cosmetic
    • “spellbook_sealed_listing_preview” added an optional parameter “channel” cosmetic
    • “spellbook_sealed_listing_submit” added an optional parameter “channel” cosmetic
    • “spellbook_japan_source_scan” reworded the description of “cohortId” cosmetic
    • “spellbook_sealed_listing_pause” reworded the description of “idempotencyKey” cosmetic
    • “spellbook_sealed_listing_preview” reworded the description of “takeover” cosmetic
    • “spellbook_sealed_listing_submit” reworded the description of “idempotencyKey” cosmetic
    • “spellbook_sealed_listing_submit” reworded the description of “takeover” cosmetic
    • “spellbook_sealed_portfolio_hold_set” reworded the description of “entryId” cosmetic
  • 26 Sept 26 0
    • New tool “spellbook_sealed_listing_pause”, which the server declares destructive security
    • New tool “spellbook_sealed_listing_submit”, which the server declares destructive security
    • Tool “spellbook_sealed_portfolio” rewrote its description, which is the text the model reads security
    • Tool “spellbook_sealed_product_search” rewrote its description, which is the text the model reads security
    • Schema quality: 15971 → 18801 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • New tool “spellbook_card_buylist” functional
    • New tool “spellbook_deck_contents” functional
    • New tool “spellbook_deck_import_limitless” functional
    • New tool “spellbook_experiment_cross_channel” functional
    • New tool “spellbook_experiment_eligibility” functional
    • New tool “spellbook_pokemon_arbitrage_spreads” functional
    • New tool “spellbook_pokemon_ath” functional
    • New tool “spellbook_pokemon_market_analytics” functional
    • New tool “spellbook_pokemon_metagame_archetype” functional
    • New tool “spellbook_pokemon_metagame_card” functional
    • New tool “spellbook_pokemon_metagame_overview” functional
    • New tool “spellbook_sealed_intent_default_set” functional
    • New tool “spellbook_sealed_intent_defaults” functional
    • New tool “spellbook_sealed_listing_preview” functional
    • New tool “spellbook_sealed_portfolio_hold_set” functional
    • New tool “spellbook_sealed_portfolio_open_intent_clear” functional
    • New tool “spellbook_sealed_portfolio_receive” functional
  • 25 Sept 26 65

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 28 Sept 2026 · Probed https://api.spellbook-finance.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.spellbook-finance.com CN=Amazon RSA 2048 M04,O=Amazon,C=US 4 Sept 2026 20 Mar 2027 RSA 2048 SHA256-RSA 8a4cdac2839a106c4a04a281455821c
SANs: api.spellbook-finance.com
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.spellbook-finance.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
spellbook-finance.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.spellbook-finance.com/mcp Verified 200
http (plaintext) http://api.spellbook-finance.com/mcp HTTPS enforced
MCP tools · 100 exposed · ~18,207 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
spellbook_agent_gap_report ~365

After finishing the task, ask the person whether they consent to send one bounded capability-gap report to SpellBook. Call this tool only after an explicit yes for this report and set consentToShare to true. Use it when a needed field was null, you guessed a number because no tool supplied it, you wished a tool existed, or you abandoned a path. It returns no task data and fixes nothing. Generate a fresh ULID submissionId and reuse the exact request for retries within 24 hours. Field paths must be real SpellBook response paths. There is no free-text field: never describe the card, price, customer, or conversation.

NameTypeReqDescription
abandonReasonstring–Why the task was abandoned. Required only when outcome is abandoned.
consentToSharebooleanyesTrue only after the person explicitly agreed to send this specific report.
guessedFieldsarray–Real SpellBook response field paths the agent had to guess a value for because no tool supplied one. Omit when nothing was guessed.
neededFieldsarrayyesReal SpellBook response field paths that were null or missing when needed. Omit or send empty when none applied.
occurredAtstringyesISO-8601 timestamp of when the gap occurred. Required.
outcomestringyesWhat happened to the task: closed enum. Required.
submissionIdstringyesA fresh ULID for this report. Reuse the exact same value and request body to retry within 24 hours; a new value starts a new report.
taskCategorystringyesWhich closed task category this gap happened in. Required.
wishedCapabilityobject–A capability the agent wished existed and did not find. Omit when no capability was missing.

No output schema declared.

No examples provided.

spellbook_box_ev_rankings ~419

Read sealed-product EV rankings, defaulting to the highest modeled EV ratio first. Returns exact product IDs, market prices, modeled total EV, the acquirableFloorUsd and evRatioBasis used for the stored EV ratios when present, market-basis ratios, market-price spreads, shipping-aware ratios, per-pack metrics and row timestamps. evRatio is totalEV divided by max(marketPrice, the cheapest captured TCG listing price plus shipping) on rows with a known basis; evRatioMarketBasis preserves the market-price comparison. spreadUsd is totalEV minus marketPrice, so it is a separate comparison. This is research evidence for a caller's decision, not a guaranteed best box or a purchase instruction.

NameTypeReqDescription
box_typestring–Exact box-type name to filter to one sealed product line. Omit to include every box type.
cursorstring–Opaque nextCursor from a previous page, passed back unchanged. Omit to start from the first page.
gamestring–Restrict rankings to one game. Omit for the mixed supported-game ranking. A registered game without production EV returns an empty ranking plus sealedIntelligence.reason and missingFields.
limitinteger–Maximum rows to return, 1 to 150. Omit for the default of 50.
max_pricenumber–Maximum market price a row may have to be returned. Omit for no ceiling.
min_ev_rationumber–Minimum stored evRatio a row must have to be returned. Rows with a null ratio are excluded. Omit for no floor.
qstring–Free-text filter on product name. Omit to include every product.
sortstring–Which computed field ranks the rows. Defaults to evRatio, the stored totalEV ratio using acquirableFloorUsd when its basis is known; use spreadUsd for totalEV minus marketPrice.
sort_dirstring–Sort direction for `sort`. Defaults to desc, highest first.

No output schema declared.

No examples provided.

spellbook_buy_outcome_report ~89

Score every closed buy decision in one workspace against its immutable prediction and a fixed equal-weight printing basket. Includes unscored and abandoned counts, missing baseline evidence and small-sample limits. Uses submitted receipts; does not verify merchant orders or money.

NameTypeReqDescription
workspaceIdstringyesThe workspaceId to score, from spellbook_workspaces_list. Required; this scores exactly one workspace.

No output schema declared.

No examples provided.

spellbook_buy_targets ~298

Return a bounded source-order page of materialized TCGplayer-to-Card-Kingdom rows with an opaque nextCursor for complete traversal. Rows include printing identity, observed acquisition and cash quote prices, listed shipping, seller/quantity evidence, exit.quantityBuying (the copies Card Kingdom buys at the quoted price), maxCopies (the smaller of listed stock and exit.quantityBuying), the Card Kingdom condition ladder (NM/EX/VG/G payouts, modeled from the NM quote), timestamps, printingMismatches and missingFields. Call this first when a person says "I have $X to risk", "find me opportunities", "good opportunities", "single cards", "high risk singles", "start with arbitrage" or "what should I buy". Never request more copies of a row than maxCopies. Before handing a person a buy list, record each chosen row as a consideration with spellbook_customer_evidence_record, because spellbook_buy_outcome_report scores only recorded considerations. No profit, ranking, selection, reserves or cost defaults. Exact listing links and fee amounts are null when unavailable. Customer agent supplies all policy and executes purchases.

NameTypeReqDescription
cursorstring–Opaque nextCursor from a previous page, passed back unchanged to continue traversal. Omit to start from the first page.
limitinteger–Maximum buy-target rows to return, 1 to 200. Omit for the default of 200.

No output schema declared.

No examples provided.

spellbook_card_buylist ~125

Read dealer buy offers for ONE exact card product, preserving each offer's game, finish, subtype, language, condition, source product, source timestamp, cash and credit fields, quantity and missingFields. Use the catalog product id from spellbook_printings_search. Pokemon offers are English NM/New CoolStuffInc observations when present; no offer or missing field proves a dealer has no stock. This read returns facts and does not choose a vendor or sell cards.

NameTypeReqDescription
cardIdstringyesThe exact printing or catalog product id from spellbook_printings_search. Required.

No output schema declared.

No examples provided.

spellbook_card_prices ~188

Read every price source SpellBook Finance holds for ONE printing, one row per source, each with its own label, price and timestamp. Sources can include TCGplayer Market, TCGplayer Low, Card Kingdom retail and buylist, CoolStuff, an eBay 90-day sold median, Cardmarket, ManaPool and CardTrader. Pokemon TCGplayer finish subtypes stay in separate rows. cardId is the exact printing id returned by spellbook_printings_search: a UUID for Magic, or a catalog product id for Riftbound or Pokemon. Rows come back in source order with their own timestamps; nothing is averaged, ranked, or chosen for you, and no listing link is returned.

NameTypeReqDescription
cardIdstringyesThe exact printing id from spellbook_printings_search: a UUID for Magic, or the namespaced catalog product id for Riftbound or Pokemon. Required.

No output schema declared.

No examples provided.

spellbook_channel_pricing_profile_set ~222

Pin one of the workspace's saved pricing profiles to one marketplace channel, or clear the pin with a null profileId. It is the same choice as the channel defaults card on the SpellBook pricing settings page. Read spellbook_channel_pricing_profiles first, and pin only a profile the seller named. Returns the full channel pricing read after the write, plus the channel's previous pin, so the change can be reverted by setting the previous value back. It changes which profile prices future automatic listings and reprices; it edits no profile and publishes nothing.

NameTypeReqDescription
channelstringyesThe marketplace channel to pin: ebay, tcg (TCGplayer), manapool, shopify or cardtrader. Required.
profileId–yesA profileId from spellbook_channel_pricing_profiles, or null to clear the pin so the channel falls back to the workspace's active profile. Required.
workspaceIdstringyesThe workspace to change, from spellbook_workspaces_list. The signed-in customer must own it. Required.

No output schema declared.

No examples provided.

spellbook_channel_pricing_profiles ~125

Read which saved pricing profile each marketplace channel prices from in one workspace. Automatic eBay listing and repricing price every card from the eBay channel's profile, so read this before a seller turns on automatic eBay listing. Returns the workspace's saved profiles by name with the active one marked, and for each channel the pinned profile, the profile automation actually prices from, and which SpellBook jobs read that pin. It reports the setting and recommends no profile.

NameTypeReqDescription
workspaceIdstringyesThe workspace to read, from spellbook_workspaces_list. Required.

No output schema declared.

No examples provided.

spellbook_credit_conversion_candidates ~66

Read CK credit-funded sealed acquisition candidates ranked by opening EV. Cash/credit opening multiples do NOT rank intact sealed resale cash profit. Credit is restricted purchasing power.

NameTypeReqDescription
boxTypestring–Restrict candidates to one box type. Defaults to all, covering every type.

No output schema declared.

No examples provided.

spellbook_credit_resale_assessment ~192

Assess up to ten exact sealed product lines as a CK-credit-funded intact resale scenario. Supply starting credit and explicit cost assumptions; omit unknown costs. EV judgment is permitted. Returns labeled cash estimates, credit allocation, capacity and missing evidence. Research only, no purchase.

NameTypeReqDescription
costsobjectyesExplicit cost assumptions for the resale scenario. Every field is optional; omit any cost that is unknown rather than guessing zero.
exitChannelstringyesName of the channel the intact resale would exit through. Required, up to 30 characters.
linesarrayyesUp to 10 exact sealed product lines to assess. Required, at least one.
maxSnapshotAgeHoursnumberyesMaximum age in hours of price snapshots this assessment may use. Required.
startingCreditUsdnumberyesCard Kingdom store credit available to spend in this scenario, in USD. Required.

No output schema declared.

No examples provided.

spellbook_customer_evidence_get ~87

Read one private immutable evidence receipt from the selected workspace. Returned observations and source fields remain submitted evidence.

NameTypeReqDescription
receiptIdstringyesThe receipt's receiptId from the record response, or the submissionId you chose when recording it. Either one resolves the same receipt inside the workspace. Required.
workspaceIdstringyesThe workspace the receipt belongs to. Required.

No output schema declared.

No examples provided.

spellbook_customer_evidence_list ~188

List a bounded page of private evidence receipts from the selected workspace, optionally filtered by receipt kind, parent, or item ID.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous page, passed back unchanged. Omit to start from the first page.
itemIdstring–Restrict the list to receipts referencing this exact item id. Omit for no item filter.
kindstring–Restrict the list to one receipt kind. Omit to include every kind.
limitinteger–Maximum receipts to return, 1 to 50. Omit for the default of 20.
parentReceiptIdstring–Restrict the list to receipts linked to this parent receipt's receiptId from the record response. Omit for no parent filter.
workspaceIdstringyesThe workspace to list receipts from. Required.

No output schema declared.

No examples provided.

spellbook_customer_evidence_record ~105

Append one immutable consideration, realized outcome, or work observation to the selected workspace. A receipt proves storage only. It does not verify source providers, inspected card truth, profit, or completed work.

NameTypeReqDescription
request–yesThe evidence envelope: a submissionId, occurredAt, a kind (realized_outcome, consideration or work_observation), and that kind's payload. Required.
workspaceIdstringyesThe workspace to append this evidence to. Required.

No output schema declared.

No examples provided.

spellbook_deck_contents ~82

Read one authenticated customer's exact owned and draft card contents for a deck. The response preserves game identity, entry ids, matched catalog identity, quantities, membership recovery count and Pokemon readiness checks. It reports facts only and does not edit a deck or infer missing cards.

NameTypeReqDescription
deckIdstringyesThe exact deck id returned by the deck workflow. Required.

No output schema declared.

No examples provided.

spellbook_deck_import_limitless ~197

Import one player's Pokemon decklist from one fixed Limitless tournament standings record into the seller's workspace. The workspace owner chooses the event, player, format and idempotency key; retries with the same key replay the first result or report an in-progress import. The tool does not accept URLs or credentials and returns source identity, matched and unmatched counts, and the imported deck.

NameTypeReqDescription
eventIdstringyesThe Limitless tournament event id. Required.
formatstring–Deck format. Defaults to Standard.
idempotencyKeystringyesA caller-generated retry key. Reuse it unchanged after an uncertain result. Required.
namestring–Optional deck name.
playerIdstringyesThe exact player name or id as shown by the selected event. Required.
workspaceIdstringyesThe workspace to import into. The caller must be its owner. Required.

No output schema declared.

No examples provided.

spellbook_ebay_automation_set ~233

Set one workspace's eBay automation mode, which decides whether SpellBook lists and reprices on eBay by itself. This changes public eBay behavior for the workspace, only the workspace owner may call it, and the agent sets a mode only after the seller chose one. The modes: manual: Nothing lists or reprices on eBay automatically; you publish from the eBay preview when you choose. auto_list: New eligible inventory lists on eBay automatically at your saved eBay pricing strategy's prices, and existing eBay listings are never repriced automatically. full: New inventory lists on eBay automatically, and existing eBay listings reprice from your saved eBay pricing strategy. With variation packages on (the default), new inventory groups into one listing per set with each card as a variation; with them off, each card lists on its own.

NameTypeReqDescription
modestringyesThe mode the seller chose: manual, auto_list, or full. Required.
workspaceIdstringyesThe workspace whose eBay automation mode to set. The caller must own it. Required.

No output schema declared.

No examples provided.

spellbook_ebay_connect_link ~108

Get a one-click link the seller opens to connect their eBay account to SpellBook Finance. Call spellbook_ebay_connection_status first. The link is signed for this customer and expires, so fetch a fresh one when you hand it over. Give them the link and tell them eBay will ask them to sign in and approve the connection. Once they finish, call spellbook_ebay_connection_status again; the agent never needs to open a SpellBook browser.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

spellbook_ebay_connection_status ~98

Check whether this signed-in customer's eBay seller account is connected to SpellBook Finance. Call this before requesting a connect link and call it again after the seller approves eBay consent. It returns the stored account identity and token state plus current eBay seller-registration and selling-limit facts. If connected is false and account is null, call spellbook_ebay_connect_link. If status is revoked, fetch a fresh connect link.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

spellbook_ebay_job_status ~152

Read one eBay bulk job by the jobId returned from spellbook_ebay_publish or spellbook_ebay_reprice. Both operations queue work, so call this before telling the person a listing was created or its ask changed. State planning, pending, uploading, processing or ingesting means the job is still running: call again after about a minute. State failed carries errorMessage, and each failures row carries a per-card reason: relay that reason to the person. Returns state, counts, per-card items, failures and missingFields.

NameTypeReqDescription
jobIdstringyesThe jobId returned by spellbook_ebay_publish or spellbook_ebay_reprice. Required.

No output schema declared.

No examples provided.

spellbook_ebay_publish ~388

Publish owned copies from one workspace as live eBay listings, priced by a stated rule. Pass itemIds to publish one exact card. ALWAYS call it once with dryRun true and show the person the counts and the preflight before calling it again with dryRun false, because a live run creates real listings a real buyer can buy. Pricing anchors on market price, never on what the seller paid: multiplier 0.96 lists at 96% of market, and floorUsd only ever raises a price. A live run returns a queued jobId, or the reason nothing published. A queued job has listed nothing yet, so call spellbook_ebay_job_status with that jobId before telling the person any card is live.

NameTypeReqDescription
batchSizeinteger–Maximum copies to submit in this call. Omit for the default batch size.
binIdstring–Restrict publishing to one exact bin. Omit to consider every owned copy.
dryRunboolean–True previews the run with no live listings created. False publishes for real. Defaults to true; a live run needs an explicit false.
floorUsdnumber–A price floor in USD that only ever raises a computed price. Omit for no floor.
itemIdsarray–Restrict publishing to these exact Item ids, from a prior spellbook_inventory_items_query. Pass one id to list one card. The owned-only rule still applies to each id. Omit to consider every owned cop…
multipliernumberyesPrice multiplier applied to each copy's market price, e.g. 0.96 lists at 96% of market. Required.
setCodesarray–Restrict publishing to these set codes. Omit to consider every set.
workspaceIdstringyesThe workspace whose owned copies to publish. Required.

No output schema declared.

No examples provided.

spellbook_ebay_reprice ~359

Preview or reprice existing live eBay listings in one seller workspace using a market multiplier and optional floor. This is a one-run marketplace override: it changes current eBay asks, creates no listing, and saves no pricing profile or durable override. Preview first with the default dryRun true; an explicit dryRun false queues an async reprice job. Read that job with spellbook_ebay_job_status until each affected listing reaches its terminal state.

NameTypeReqDescription
acquisitionSourcestring–Restrict the run to one exact acquisition source. Omit for every live eBay listing in the workspace.
binIdstring–Restrict the run to one exact inventory bin. Omit for every live eBay listing in the workspace.
dryRunboolean–True previews the listings and counts with no marketplace change. False queues the reprice job. Defaults to true; applying requires explicit false.
floorUsdnumber–Optional minimum ask in USD. Existing backend floors and locks can still raise the resulting ask.
itemIdsarray–Restrict the run to these exact listed Item ids from spellbook_inventory_items_query. Omit for every live eBay listing in the workspace.
multipliernumberyesMarket price multiplier for the selected listings, such as 0.96 for 96% of market. Required.
setCodesarray–Restrict the run to these set codes. Omit for every live eBay listing in the workspace.
skipIfWithinPercentnumber–Skip an existing ask already within this percentage of the target. Defaults to 2.
workspaceIdstringyesThe workspace whose existing eBay listings to reprice. Required.

No output schema declared.

No examples provided.

spellbook_ebay_unpublish ~141

End the live eBay listings for up to 25 exact copies, and keep each copy in inventory so it can be published again. Take Item ids from spellbook_inventory_items_query. Show the person which cards will come down and get a yes before calling, because a live listing ends at once. Returns one result per copy: unpublished, kept, no_listing, or failed.

NameTypeReqDescription
itemIdsarrayyesUp to 25 exact Item ids whose eBay listings to end, from a prior spellbook_inventory_items_query. Required, at least one.
workspaceIdstringyesThe workspace that owns the copies. Required.

No output schema declared.

No examples provided.

spellbook_entitlements ~29

Read this authenticated customer's current Investor and Seller access. Flags are not proof of payment or enrollment.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

spellbook_free_seller_workspace_claim ~136

Claim the one permanent free Seller allowance for a workspace the seller explicitly chose. Ask the seller to name the workspace from spellbook_workspaces_list and confirm that choice before this call. Never pick a workspace from list order or an active-workspace default. The signed-in person must own it. Re-read spellbook_workspace_plan_status after this call for the actual allowance and entitlement.

NameTypeReqDescription
choiceConfirmedbooleanyesTrue only after the seller explicitly confirms this workspace choice in the current conversation. Required.
workspaceIdstringyesThe exact workspaceId the seller explicitly selected for their one free Seller workspace. Required.

No output schema declared.

No examples provided.

spellbook_guides ~140

Find a cataloged SpellBook Finance customer-agent guide for seller setup and onboarding, selling, pricing, sealed EV, or choosing a card or sealed-product strategy for a budget and workload. Use it when a customer asks how to make money with Magic, what to do with a bankroll or store credit, whether to open or resell sealed product, or which research route fits their goal. Returns each guide's purpose, supported decision, and URL; read that page for its tool sequence and field meanings. Public search-acquisition articles are excluded.

NameTypeReqDescription
topicstring–Narrow results to one education topic id. Omit to search every published topic.

No output schema declared.

No examples provided.

spellbook_inventory_bin_ensure ~230

Record physically confirmed cards into one inventory bin, by stating the DESIRED TOTAL quantity of each exact printing that belongs in that bin. Existing live copies count toward that total, so only a missing difference is created. Calling it twice with the same numbers creates nothing the second time. Use it for the first cards a seller enters by hand, with no CSV and no scanner. Returns the created item ids plus every candidate it refused and why.

NameTypeReqDescription
binIdstringyesThe bin these cards physically sit in. A bin id is a container letter plus an incrementing number, like B0001, where the letter names the physical box and the number names the bag inside it. Required.
itemsarrayyesUp to 200 exact printing rows to record in this bin. Required, at least one.
physicallyConfirmedbooleanyesMust be true, asserting a person has physically counted these cards. The call is refused when this is omitted or false.
workspaceIdstringyesThe workspace to record these cards into. Required; writes only to this workspace.

No output schema declared.

No examples provided.

spellbook_inventory_holdings ~198

Read one page of what a seller's own workspace holds, aggregated to one row per printing, finish and condition. Each row carries card name, set code, collector number, variant label, quantity owned, quantity available, the current unit market price and the resolved minimum-sell floor with the tier that produced it. Call this to answer what is in the collection, what it is worth, what is already listed versus still available, and which rows sit near their floor. It reports holdings; it does not rank them, pick what to sell, or state a listing's live marketplace status.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous page, passed back unchanged. Omit to start from the first page.
limitinteger–Maximum rows to return, 1 to 500. Omit for the default of 100.
workspaceIdstringyesThe workspace to read holdings for. Required.

No output schema declared.

No examples provided.

spellbook_inventory_import_csv ~423

Import a seller's own ManaBox export or TCGplayer inventory export into one workspace, the same import the SpellBook web app runs. The server parses the CSV, resolves each row to an exact printing, assigns bins, and creates one inventory copy per card. TCGplayer Pokémon and Riftbound rows require the catalog's exact game, provider product identity, finish, condition, and language; incomplete or mismatched rows are skipped with a repair reason and never default to Magic, English, or nonfoil. Sending the identical CSV again returns the first result with duplicate true and creates nothing. Returns the importId, how many copies were written, the bins used, and every row it could not parse or skipped.

NameTypeReqDescription
binNamestring–A human name for that one bin, 1 to 48 letters, digits, spaces, dashes or underscores. Honored only when oneBinPerUpload is true. A name another import already holds is refused.
binPrefixstring–One capital letter that starts the auto-assigned bin codes, e.g. C gives C0001, C0002. Defaults to C.
csvstringyesThe full CSV text, header row included, exactly as the export produced it. Required. At most 200,000 characters.
oneBinPerUploadboolean–True puts the whole file in one fresh bin instead of packing 200 cards per bin across the rolling sequence. Defaults to false.
sourcestringyesWhich export this is: manabox for a ManaBox CSV (needs Scryfall ID, Quantity, Condition and Foil columns), tcg for a TCGplayer seller inventory export (needs the TCGplayer Id column). Required.
totalCostnumber–What the seller paid for the whole file in USD, split equally across every copy. Omit when the seller has not stated it; omitting records zero cost.
workspaceIdstringyesThe workspace to import into. Required; writes only to this workspace.

No output schema declared.

No examples provided.

spellbook_inventory_incoming ~133

Read what a workspace has bought or saved that has not arrived yet, one group per marketplace order or precon deck import. Each group carries its acquisitionSource, a readable title, the copy and card counts, the total cost, the date it was recorded and the bins its copies are assigned to. Call this to answer what is still on the way, or to find the acquisitionSource to receive. It reports pending groups; it does not track a package or say when one will arrive.

NameTypeReqDescription
workspaceIdstringyesThe workspace whose incoming inventory to read, from spellbook_workspaces_list. Required.

No output schema declared.

No examples provided.

spellbook_inventory_incoming_receive ~148

Mark every pending copy in the named orders or precon imports as received, which makes them owned inventory that can be listed and sold. Returns how many copies were received, their total cost and the bins they belong in. Call it when the customer says the package arrived and they counted the cards. Read spellbook_inventory_incoming first to get each acquisitionSource.

NameTypeReqDescription
acquisitionSourcesarrayyesThe acquisitionSource of each order or import to receive, exactly as spellbook_inventory_incoming or spellbook_purchase_incoming_record returned it. Required, at least one.
workspaceIdstringyesThe workspace that holds the pending copies. Required; writes only to this workspace.

No output schema declared.

No examples provided.

spellbook_inventory_items_query ~158

Read one private page of existing physical Items matching exact bins or printing, finish and condition groups.

NameTypeReqDescription
binsarray–Restrict results to these exact bin names, up to 25. Omit to search every bin.
cursorstring–Opaque cursor from a previous page, passed back unchanged. Omit to start from the first page.
groupsarray–Restrict results to these exact printing, finish and condition groups, up to 25. Omit to skip this filter.
limitinteger–Maximum Items to return, 1 to 1000. Omit for the default of 20.
workspaceIdstringyesThe workspace to read Items from. Required.

No output schema declared.

No examples provided.

spellbook_inventory_location_confirm ~168

Save up to 25 existing Item bin locations after comparing each expectedBins observation with current state. A fresh Item query is required before and after the save.

NameTypeReqDescription
expectedBinsarrayyesOne prior-bin observation per itemId in itemIds, up to 25. Required; a missing or changed Item rejects the whole batch.
itemIdsarrayyesUp to 25 exact Item ids to move, from a prior spellbook_inventory_items_query. Required, at least one.
sourceSignalIdstring–An id linking this confirmation to its originating signal. Omit when there is none.
toBinstringyesThe bin these Items are being confirmed into. Required.
workspaceIdstringyesThe workspace the Items belong to. Required.

No output schema declared.

No examples provided.

spellbook_inventory_precon_import ~360

Add one or more opened Commander precon decks to inventory as individual cards, the same Add Commander deck flow the SpellBook web app runs. The server reads the cached decklist for that TCGplayer product, creates one inventory copy per card at the exact deck printing, assigns bins, and splits the price paid across the cards. Returns the importId, how many copies were written, and the count placed in each bin.

NameTypeReqDescription
acquisitionDatestringyesThe date the seller bought the deck, as YYYY-MM-DD. Required.
binPrefixstringyesOne capital letter that starts the auto-assigned bin codes, e.g. C gives C0001. Required.
copyCountinteger–How many identical decks were opened, 1 to 20. Defaults to 1.
oneBinPerDeckboolean–True puts each deck in its own fresh bin. Defaults to false, which packs the cards into the rolling bin sequence.
overrideDuplicateboolean–True imports the deck even when this seller already imported the same product. Set it only when the person confirms a second physical deck.
paidPriceUsdnumberyesWhat the seller paid for ONE deck in USD. Required. Send 0 only when the deck cost nothing. Every copy of the deck is recorded at this price.
tcgProductIdintegeryesExact TCGplayer product id of the sealed precon deck, from spellbook_sealed_product_search. Required. A product that is not a single Commander or Riftbound precon deck is refused.
workspaceIdstringyesThe workspace to add the cards to, from spellbook_workspaces_list. Required; writes only to this workspace.

No output schema declared.

No examples provided.

spellbook_item_photo_upload_link ~183

Get a link where the seller uploads their own phone photo of one inventory copy, so the next eBay listing shows that photo in place of catalog art. Use it when the seller wants buyers to see the real card, or when catalog art is wrong or missing. Take itemId from spellbook_inventory_items_query or spellbook_inventory_holdings. Give the seller the returned url and tell them to open it on their phone, then take or pick a photo of the card front. No photo passes through you. After they say it is saved, call spellbook_ebay_publish for that copy.

NameTypeReqDescription
itemIdstringyesOne inventory copy's itemId, from spellbook_inventory_items_query or spellbook_inventory_holdings. Required.
workspaceIdstringyesThe workspace that holds the copy. The caller must own it. Required.

No output schema declared.

No examples provided.

spellbook_japan_source_scan ~172

Read the latest bounded Japan sourcing cohort: English Riftbound cards sold in Japan (riftbound-jp), Japanese-language Magic promos (japanese-promos), or exact-language Pokemon cards (pokemon, pokemon-en, pokemon-ja). Returns every tracked target's actual observation time, verified offers, exact reference prices with price kinds, unresolved listing URLs and recorded blockers, source status and freshness policy. publishedAt is snapshot publication time and does not refresh an older target. Sold and unrelated observations are not purchase candidates. Missing costs remain unknown; no buying recommendation or profit is provided.

NameTypeReqDescription
cohortIdstring–English Riftbound cards sold in Japan, Japanese-language Magic promos, or one exact-language Pokemon cohort. Use pokemon-en or pokemon-ja to keep source observations isolated. Defaults to riftbound-j…

No output schema declared.

No examples provided.

spellbook_japanese_sourcing ~379

Read Japanese-market supply offers for the Japanese promo cohort from Mercari, Hareruya and Bigweb, each beside the comparison prices SpellBook holds on TCGplayer, ManaPool and eBay. Every row carries one exact supply offer with its printing identity, the merchant's own condition grade and its normalized equivalent, the native unit price with its currency, quantity, availability, and its own observedAt and staleAfter stamps; then every comparison reference with its kind and typed comparisonBasis, a deterministic selectedReference with the selectionRule that chose it, and a providerStatus row for each comparison source explaining why it is ok, missing, stale, failed or incompatible. grossDifferenceUsd is an asking spread and is null unless printing, language, finish, unit basis and condition equivalence all hold; netDifferenceUsd stays null because this read carries no costs. Rows come back in source order, and nothing is ranked, scored or recommended for you.

NameTypeReqDescription
buySourcesarray–Which Japanese supply sources to read. Omit for all three. Narrow it only when the person named a merchant; a source you drop is simply absent, never proven empty.
comparisonSourcesarray–Which comparison price sources to attach to each offer. Omit for all three. Each requested source returns a providerStatus row even when it has no reference.
cursorstring–The opaque nextCursor from the previous page, passed back unchanged. It is signed by the server; never construct, decode or edit one.
includeStaleboolean–True also returns offers whose staleAfter has already passed, with their stamps intact. Default false returns only offers still inside their freshness window.
limitinteger–Maximum offers in this page. Page with cursor to traverse the rest; a short page is not proof the cohort ended.

No output schema declared.

No examples provided.

spellbook_manapool_automation_set ~263

Set one workspace's ManaPool automation mode, which decides whether SpellBook creates, updates, delists, and reprices ManaPool listings by itself. This changes public ManaPool behavior for the workspace, only the workspace owner may call it, and the agent sets a mode only after the seller chose one. The modes: manual: SpellBook creates no ManaPool listings and sends no quantity changes or delistings, but it keeps repricing your existing ManaPool listings. assisted: SpellBook plans the ManaPool listing changes it would make but sends none of them and offers no approval step, and it keeps repricing your existing ManaPool listings. automatic: SpellBook creates, updates, and delists ManaPool listings as your inventory changes and reprices existing ones, once the workspace passed a ManaPool test publish and while ManaPool reports the account ready to sell. paused: SpellBook sends nothing to ManaPool: no new listings, no quantity changes, no delistings, and no repricing.

NameTypeReqDescription
modestringyesThe mode the seller chose: manual, assisted, automatic, or paused. Required.
workspaceIdstringyesThe workspace whose ManaPool automation mode to set. The caller must own it. Required.

No output schema declared.

No examples provided.

spellbook_manapool_connect_link ~155

Get the SpellBook Finance page where the seller connects ManaPool, and guide them through it. Call spellbook_manapool_connection_status first. Save the seller's return address with spellbook_return_address_save before you hand over the link, because the page fills ManaPool's tax address from it. Hand the seller only this one link. The page itself links to ManaPool's token page, where a seller with no ManaPool account signs up first and then creates an access token starting mpat_. Tell them the SpellBook page already shows their email and return address, so they paste only the token. Call spellbook_manapool_connection_status after they finish. The agent never receives or submits the credential.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

spellbook_manapool_connection_status ~72

Check whether this signed-in customer's ManaPool seller account is connected to SpellBook Finance. Call this before requesting a setup link and again after the seller finishes the setup form. It returns a masked account identifier and stored connection timestamps. If connected is false, call spellbook_manapool_connect_link.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

spellbook_manapool_sync_apply ~224

Send a previewed batch of changes to ManaPool, creating, repricing and removing real listings. Takes the previewToken from spellbook_manapool_sync_preview, which must still be valid. Applies at most maxActions in one call and returns remainingActionCount with nextActionCursor, so a full book takes several calls. Show the person the preview before the first call, not after.

NameTypeReqDescription
floorUsdnumber–Must match the floorUsd used to build the preview, or the token is refused.
maxActionsinteger–Maximum actions to apply in this call, 1 to 250. Omit for the default of 50; call again with the same token to continue.
multipliernumber–Must match the multiplier used to build the preview, or the token is refused.
previewTokenstringyesThe previewToken from spellbook_manapool_sync_preview. Must still be valid; a stale token is refused.
workspaceIdstringyesThe workspace whose previewed changes to apply. Required.

No output schema declared.

No examples provided.

spellbook_manapool_sync_preview ~174

Compare one workspace's inventory against what is live on ManaPool, and return the exact changes a sync would make. Every action is listed with its kind: upsert to create or change a listing, delist to remove one, blocked where a cross-channel check refused it. Nothing is sent to ManaPool by this call. Show the person the summary and the counts, then call spellbook_manapool_sync_apply with the previewToken this returns.

NameTypeReqDescription
floorUsdnumber–A price floor in USD for this preview. Omit to use the workspace's stored floor.
multipliernumber–Price multiplier applied to market price for this preview. Omit to use the workspace's stored pricing.
workspaceIdstringyesThe workspace to compare against live ManaPool state. Required.

No output schema declared.

No examples provided.

spellbook_movers ~177

Read which card printings changed price the most over one window: daily, weekly, 30d or 90d. Returns gainers and losers with exact game, catalog product, language, finish and marketplace variant when the source provides them, plus current and previous prices, dollar and percent change, a canonical SpellBook Finance cardUrl, and run timestamps. Call this to answer "what is moving this week" instead of guessing, then call spellbook_card_prices for one printing's per-source prices. An unavailable result names why no supported rows can be returned.

NameTypeReqDescription
gamestring–Restrict card movers to one game. Omit for the default Magic board.
windowstring–Which price-change window to read: daily, weekly, 30d or 90d. Omit for the default window.

No output schema declared.

No examples provided.

spellbook_pokemon_arbitrage_spreads ~344

Read bounded Pokemon acquisition and exit quote facts for exact product identity, preserving quote basis, currency, observation time, source reference, source URLs, comparisons, missingFields and limitations. This read compares observed sources; it does not rank opportunities, recommend a purchase, or execute a transaction.

NameTypeReqDescription
cohortIdstring–Optional Pokemon cohort. Use pokemon-ja or pokemon-en to keep language evidence isolated.
conditionstring–Optional condition filter.
finishstring–Optional exact finish filter.
importChargesUsd––Optional import charges assumption in USD; omitted keeps landed cost incomplete.
importDutyRate––Optional import duty rate as a decimal; omitted keeps landed cost incomplete.
inboundShippingUsd––Optional inbound shipping assumption in USD; omitted keeps landed cost incomplete.
languagestring–Optional exact language filter.
limitinteger–Maximum rows to return, from 1 to 100. Defaults to 25.
otherAcquisitionUsd––Optional other acquisition cost in USD; omitted keeps landed cost incomplete.
otherSellingUsd––Optional other selling cost in USD; omitted keeps net proceeds incomplete.
outboundShippingUsd––Optional outbound shipping assumption in USD; omitted keeps net proceeds incomplete.
productIdstring–Optional exact Pokemon catalog product id from spellbook_printings_search.
proxyFeeUsd––Optional proxy fee assumption in USD; omitted keeps landed cost incomplete.
sellingFeeRate––Optional selling fee rate as a decimal; omitted keeps net proceeds incomplete.
sellingFixedFeeUsd––Optional selling fixed fee in USD; omitted keeps net proceeds incomplete.

No output schema declared.

No examples provided.

spellbook_pokemon_ath ~106

Read the latest Pokemon all-time-high facts for the retained daily snapshot. Rows preserve exact product identity, language, finish, variant, source date, previous ATH and history coverage. This is a facts-only read; unavailable or partial history stays explicit in availability, missingFields and limitations.

NameTypeReqDescription
datestring–Optional retained snapshot date, YYYY-MM-DD. Omit to read the latest snapshot.
gamestringyesThe game to read. Must be pokemon.

No output schema declared.

No examples provided.

spellbook_pokemon_market_analytics ~124

Read exact identity scoped Pokemon market facts for ONE catalog product: language, finish, condition, independent retail fair value, observed supply depth, versioned SCORE factors and Limitless demand coverage. The response keeps qualified values null when source count or comparable history is missing, and names missingFields and limitations. It reports facts only; it does not rank cards, recommend an action or infer a missing source.

NameTypeReqDescription
cardIdstringyesThe exact Pokemon catalog product id from spellbook_printings_search, such as pokemon:tcgp:12345. Required.

No output schema declared.

No examples provided.

spellbook_pokemon_metagame_archetype ~119

Read observed Pokemon archetype and card facts for one format and exact archetype name from recent Limitless tournament decklists. The response preserves source coverage, card prices, truncation, missingFields and limitations. It reports observations and does not recommend a deck or purchase.

NameTypeReqDescription
archetypeNamestringyesExact observed archetype name. Required.
formatstringyesPokemon format. Required.
limitinteger–Maximum cards to return, from 1 to 100. Defaults to 100.

No output schema declared.

No examples provided.

spellbook_pokemon_metagame_card ~120

Read observed Pokemon card demand facts for one exact catalog product, optionally narrowed to one format. The response preserves exact card identity, sample windows, counts, prices, coverage, missingFields and limitations. It reports observations and does not rank or recommend a card.

NameTypeReqDescription
cardIdstringyesExact Pokemon catalog product id from spellbook_printings_search. Required.
formatstring–Optional Pokemon format filter.
limitinteger–Maximum observations to return, from 1 to 100. Defaults to 20.

No output schema declared.

No examples provided.

spellbook_pokemon_metagame_overview ~97

Read observed Pokemon archetype coverage for one format from recent Limitless tournament decklists. The response preserves archetype facts, sample coverage, truncation, missingFields and limitations. It does not measure the whole player population or predict demand.

NameTypeReqDescription
formatstringyesPokemon format. Required.
limitinteger–Maximum archetypes to return, from 1 to 100. Defaults to 50.

No output schema declared.

No examples provided.

spellbook_pokemon_tcg_staged_preview ~133

Preview the TCGplayer CSV rows for 1 to 25 exact Pokemon physical inventory copies in one workspace. Call this after the seller selects the copies they want to inspect. It returns the existing staged-preview rows and CSV; it queues nothing, publishes nothing, and offers no publish or export follow-up.

NameTypeReqDescription
itemIdsarrayyesThe exact Item ids selected by the seller, 1 to 25 unique non-empty values. Required; each copy must be owned and belong to Pokemon.
workspaceIdstringyesThe workspace that owns every selected Pokemon inventory copy. Required.

No output schema declared.

No examples provided.

spellbook_pricing_amendment_create ~176

Create one bounded seller pricing amendment from a selector, marketplace scope, absolute multiplier and optional protected band. Returns saved readback. The server retains its adaptive default internally; this tool has no demand behavior input and does not publish or reprice.

NameTypeReqDescription
enabledboolean–Whether the amendment starts enabled. Omit for enabled.
marketplaceScope–yesMarketplace scope. Required.
modeobjectyesAbsolute multiplier and optional protected band. Required.
namestringyesSeller-selected amendment name. Required.
notes––Optional seller notes; null clears notes.
priorityintegeryesSeller-selected precedence priority. Required.
selectorobjectyesThe bounded inventory selector. Required.
workspaceIdstringyesThe workspace the seller selected. The caller must own it. Required.

No output schema declared.

No examples provided.

Common questions

What is the SpellBook Finance MCP server?

SpellBook Finance is an MCP server listed in the public MCP registry as com.spellbook-finance/mcp. Magic: The Gathering card prices, movers, arbitrage, sealed box EV, and seller inventory tools. This page covers its hosted endpoint (https://api.spellbook-finance.com/mcp).

Is the SpellBook Finance MCP server safe to use?

SpellBook Finance scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the SpellBook Finance MCP server expose?

SpellBook Finance exposes 100 tools: spellbook_guides, spellbook_skill, spellbook_pull_work, spellbook_buy_targets, spellbook_buy_outcome_report, and 95 more. Their descriptions and schemas cost roughly 18,207 tokens of context every time the server is loaded.

Does the SpellBook Finance MCP server require authentication?

No. We connected to SpellBook Finance without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the SpellBook Finance MCP server still maintained?

SpellBook Finance is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.