SpellBook Finance
com.spellbook-finance/mcpVersion 1.0.0Magic: The Gathering card prices, movers, arbitrage, sealed box EV, and seller inventory tools.
Status
Responds374 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:16 UTC
- Latency
- 374 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://api.spellbook-finance.com/mcpResponds374 msNo sign-in
Claude Code
claude mcp add --transport http spellbook-finance https://api.spellbook-finance.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: spellbook-finance
Remote MCP server URL: https://api.spellbook-finance.com/mcpCursor
{
"mcpServers": {
"spellbook-finance": {
"url": "https://api.spellbook-finance.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"spellbook-finance","type":"http","url":"https://api.spellbook-finance.com/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
186 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
spellbook_agent_gap_reportAfter 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. | No | No | Yes | No |
spellbook_agent_pricing_protectionRead a workspace's saved-rule pricing authority before an eBay reprice. Returns current and accepted eBay rules, mode, source-change acceptance requirement, unresolved submission evidence, missingFields and limitations. Settling means earlier admitted marketplace writes may still finish. Only the owner can accept rules through the web app. | No | Yes | Yes | No |
spellbook_alert_createCreate one alert in a workspace and return the saved alert. alertType buylist_watch watches dealer buy offers for the whole inventory (buylistWatchScope inventory) or for one printing and finish (buylistWatchScope card); buylistWatchCondition crossed also needs direction and threshold in USD. Every other alertType watches one card or box and needs assetType, assetKey, assetName, isFoil, direction and threshold. Sending the same alert twice returns the first one with replayed true and creates nothing. Call spellbook_alerts_list first to see what exists. | No | No | Yes | Yes |
spellbook_alert_deleteDelete one saved alert by exact alertId, taken from spellbook_alerts_list, and return success. The alert stops watching at once. Read the list first and confirm with the person which alert to remove, because this tool cannot restore it. | Yes | No | No | Yes |
spellbook_alerts_listRead one bounded page of price alerts and buylist watches saved in a workspace, with each row's type, asset, direction and threshold when present, status, and trigger fields. Filter by status or alertType. Pass nextCursor back as cursor with the same filters to continue. It reports saved alerts and does not evaluate them or say whether a price would trigger one today. | No | Yes | Yes | Yes |
spellbook_ath_observationsRead retained Magic card-level high-price detector observations for seven explicit UTC dates and one finish. Use it for which Magic cards hit an all-time high this week. Returns reported USD values, percent-unit changes, catalog-checked Magic labels, publication dates, missing days and coverage limits. Defaults to seven dates ending today and regular finish. Stored ATH state is per oracleId and finish; the reported printing label does not establish which printing supplied the historical price. Read guideResourceUri through MCP for metric, date and identity interpretation. Observations are not independently verified market-wide lifetime highs or trade recommendations. | No | Yes | Yes | No |
spellbook_below_floor_discovery_getRead a bounded below-floor discovery summary or one section page with member stages, scheduled minimums, canonical pricing targets, observed asks and source freshness, admission-selection facts, sales facts, and restoration status. Call it to inspect a seller workspace's configured discovery lane or follow a returned cursor. Member admissionSelection explains the factual automatic or manual choice already saved; this tool does not return a ranked recommendation queue. Observed asks are sampled listings, not continuous exposure or evidence of demand; scheduled minimum, canonical target, observed ask, and sold item price are separate facts. Use spellbook_below_floor_discovery_set with dryRun true to preview a requested change, then read this tool again after an apply. | No | Yes | Yes | No |
spellbook_below_floor_discovery_setPreview or apply an owner-requested below-floor discovery settings, printing membership, or off change. The default dry run returns exact entering, exiting and rejected rows plus the settings-only restoration effect. Call dryRun true first. If the owner asked only for a preview, stop there. If the owner explicitly authorized saving and the preview matches the requested change, apply with dryRun false and the same opaque expectedRevisionToken, previewId and change without asking for approval again. If apply returns stale, read spellbook_below_floor_discovery_get and request a new preview; never apply a refreshed selection automatically. Read the GET tool after a successful apply to confirm saved state and restoration status. | Yes | No | No | No |
spellbook_box_breakevenRead the existing cash-recovery scenario for one exact sealed product and caller-supplied total cost. Use it for modeled after-cost recovery and break-even timing, separately from gross opening EV or a probability of profit. Resolve the numeric product id with spellbook_sealed_product_search first. Returns the supplied assumptions, quantity, model horizon, source coverage, USD results and unknown clocks. Read the returned guideResourceUri for interpreting conditional price ceilings and a missing crossing. This read does not select a purchase price or recommend opening a product. | No | Yes | Yes | Yes |
spellbook_box_ev_historyRead stored daily gross opening-EV observations for one exact sealed product. Use it when asked how a named box's EV changed over time. Resolve the product with spellbook_sealed_product_search first; pass its numeric tcgProductId. Returns product identity, requested dates, USD values per sealed product, dated source rows and explicit model/freshness gaps. Missing dates stay absent. Read guideResourceUri through MCP for date, valuation and model interpretation. An older history point is not today's EV. The response establishes no price-only cause or unchanged methodology. | No | Yes | Yes | Yes |
spellbook_box_ev_rankingsRead a named sealed product's modeled gross contents EV, or compare ranking rows, with totalEV, evRatio, pack standard deviation (packSD), N0 and breakEvenPct. For a named Collector Booster display, use q and box_type, then match boxId to the exact catalog product; a Collector's Edition Commander deck is a different product. Call it for "how many packs until opening is likely profitable" (N0), "how swingy is this box" (packSD, and swinginess, which is packSD divided by packEV) and "what share of packs beat the pack price" (breakEvenPct). N0 is the number of packs at which a normal approximation, treating packs as independent and identical, gives about a 97.7% modeled probability that summed card value under the selected valuation basis exceeds summed pack cost. It is null when required inputs are absent or matching edge or standard deviation is not positive. Pack cost is the returned packPrice: a separate stored pack reference when available, otherwise box marketPrice divided by packsPerBox. Preserve packPriceSource; a missing or unrecognized label leaves the reference origin unknown. This is not a caller-paid cost. Each N0 variant uses its own valuation basis, with its own pack SD and edge: n0Full uses full market value (packSD, fullEdge), n0LandAdjusted prices cheap lands at bulk rates (landAdjustedPackSD, landAdjustedEdge), and n0Sellable prices cards below a threshold at bulk buylist rates (sellablePackSD, sellableEdge). These valuations use their stated basis before selling fees, shipping and liquidity. breakEvenPct is the share of simulated single packs worth at least packPrice. It is not the probability of profit after N packs. Optional cardmarketEV carries native EUR retail singles EV, per-finish coverage, quote dates, missingFields and limitations. Its totalEV is null when coverage is incomplete. Existing top-level prices, ratios, filters and order retain their US basis; Cardmarket EV has no local sealed acquisition cost. Rows also carry exact product IDs, | No | Yes | Yes | Yes |
spellbook_box_price_historyRead dated TCGCSV reference-price observations for one exact sealed box/display and an explicit historical window. Use it for a named box's price change or a retained launch-date baseline. Resolve the numeric product with spellbook_sealed_product_search first. Returns the requested identity, dates, USD Market/Low/Mid when stored, missing dates and unknown clocks. Read guideResourceUri through MCP before interpreting a since-release comparison. Use separate narrow calls for distant endpoints; the read supplies no official release date, price-change cause or realized return. | No | Yes | Yes | Yes |
spellbook_buy_outcome_reportScore 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. | No | Yes | Yes | No |
spellbook_buy_targetsReturn 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. Workspace card performance reports observed sales, sampled available channel-copy-days, uncertainty and coverage across editions/finishes; it changes no source ordering or purchase policy. 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. | No | Yes | Yes | Yes |
spellbook_buylist_compareRead one page of a workspace's sellable inventory, one group per printing, finish and condition, with the per-unit net at each of seven destinations: Card Kingdom cash, Card Kingdom credit, Star City Games cash, ManaPool, TCGplayer, TCGplayer Direct and eBay. Each destination carries gross, fees, net, price source, observation time, vendor minimum, quantity the vendor is buying and a skip reason when it has no usable price. Pass nextCursor back to read the next page. It lists every destination in a fixed order and does not rank them, name a best one or say what to sell. | No | Yes | Yes | Yes |
spellbook_buyoutsRead Magic price-spike observations from SpellBook Finance's buyout detector. Call it when asked which Magic cards are being bought out right now. Returns printing identity, old and new USD prices, fractional pctGain (0.25 means 25%), detection time, secondary-source confirmation, source links and explicit coverage gaps. Read guideResourceUri through MCP for interpretation and stop conditions. If guideUrl fails in a browser, spellbook_guides also discovers the guide's resourceUri. Observations are candidates, not verified buyouts. Call spellbook_card_prices with a row's scryfallId for current per-source price observations. | No | Yes | Yes | Yes |
spellbook_card_buylistRead 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. | No | Yes | Yes | Yes |
spellbook_card_buylist_historyRead the stored daily dealer buylist price series for ONE exact printing: one point per day with the Card Kingdom and Cardhoarder buylist price when SpellBook stored one, oldest day first, plus earliestDay, the first day SpellBook holds any stored row for that printing. Use the printing id from spellbook_printings_search. Call spellbook_card_buylist for current offers from every dealer SpellBook reads. This read returns facts; it does not choose a vendor, judge a price or sell cards. | No | Yes | Yes | Yes |
spellbook_card_deskRead one exact Magic printing and finish. Pass treatmentAsks with foil for an etched or special-treatment snapshot. asksTcgplayerProductId identifies its source product. series holds daily stored TCGplayer Market and Low (tcgLow). buckets holds NM/LP sales with English or unspecified language, the exact raw bucketStartDate values, units, transactions, weighted market and recorded low/high. The source response does not establish each bucket's duration or end date. Use bucketsState and bucketsCoverage to see what was captured. asks contains the most recent unexpired TCGplayer snapshot for that finish with item price, condition, language and listing shipping. Use stockQuantity for provider stock. Null or absent means unknown. The legacy quantity can default to 1. printing and listingId preserve provider finish and row identity when available. Read the capture time for each source and asksExpiresAt, asksTotal, asksTruncated and limitations before using the snapshot. Find the printing with spellbook_printings_search. tcgplayerBuyUrl is an affiliate link for the standard Desk product. | No | Yes | Yes | Yes |
spellbook_card_pricesRead held price snapshots for one printing, each with its own source label, amount and date. 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. For Market-versus-dealer interpretation, find a guide with spellbook_guides topic buylist-and-exits. Cardmarket retail from MTGJSON is native EUR. EUR rows carry conversion evidence when available. Read the returned guideResourceUri for currency and source-metric context; MCP resource retrieval is an alternative if guideUrl cannot be fetched. It is discoverable with spellbook_guides topic pricing. | No | Yes | Yes | Yes |
spellbook_channel_lane_setSet one workspace's lane mode for one channel-lane marketplace, the switch that decides whether SpellBook reads the marketplace or changes listings there, and set the Misprint ask floor. This changes public marketplace behavior for the workspace, only the workspace owner may call it, and the agent sets a mode or a floor only after the seller chose it. It returns the same lane state as spellbook_marketplace_onboarding. The modes: off: the lane is disabled and SpellBook neither reads nor changes the marketplace. observe: SpellBook reads the marketplace and records whether it matches SpellBook's desired state, and never changes a listing there. push: SpellBook creates, updates, and removes listings on the marketplace to match its desired state. askFloorUsd is the lowest ask SpellBook Finance sets on Misprint. Each Misprint ask is the TCGplayer ask for the same copies, raised to that floor. | Yes | No | Yes | Yes |
spellbook_channel_lane_targetsRead the listings SpellBook Finance plans on one channel-lane marketplace for a workspace. It returns the lane's enabled flag, mode, and ask floor, then one target per listing: the card, the copies it holds, the desired quantity and ask, whether the marketplace confirmed both, and what SpellBook last read from the marketplace for it. Pass itemIds to ask about specific scanned copies. Each named copy no target holds comes back in itemsWithoutTarget with a reason. Call it after spellbook_marketplace_onboarding when a seller asks what will list, what is live, or why a card did not list. Call spellbook_channel_lane_set to change the lane's mode or ask floor. | No | Yes | Yes | No |
spellbook_channel_pricing_profile_setPin 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. | Yes | No | Yes | Yes |
spellbook_channel_pricing_profilesRead 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. | No | Yes | Yes | No |
spellbook_collection_buying_getRead the current snapshot or one immutable revision of a collection deal owned by the selected workspace. The response includes the selected revision's command and receiptId so submitted terms and corrections can be audited. Read the collection-buying skill before interpreting lifecycle state. | No | Yes | Yes | No |
spellbook_collection_buying_listList a bounded page of collection deals in the selected seller workspace. Follow nextCursor to enumerate the full set, then read a deal for its latest or historical revision and source command. | No | Yes | Yes | No |
spellbook_collection_buying_recordRecord an already-bought collection with kind purchase and an unknown expectedQuantity, a seller-agreed collection deal, or a later receipt, count correction, evaluation, seller response, reported payment/refund, return/title disposition, dispute, closure, or evidence-backed reopening. Read spellbook_skill(name: collection-buying) first. A submission is an immutable, owner-scoped receipt; retry its exact submissionId and payload after an uncertain result. It records evidence only: it does not contact a seller, send money, verify a reported payment, transfer title, receive inventory, or publish cards. | No | No | Yes | No |
spellbook_collection_intake_getRead one persistent collection purchase's intake counts, pending import blockers, retained intake valuation, exact-item sale/refund observations and paged immutable history. Market value is separate from realized proceeds. Missing selling costs keep net earnings unknown. | No | Yes | Yes | No |
spellbook_collection_intake_recordBind an explicitly identified fresh rescan to existing intakeUnitIds without adding stock, finish or reopen intake, record a reported extra cost, preserve a dated snapshot of original intake quotes with quote dates/coverage separate from recorded time, reconcile an original pending import's exact item IDs, or remove_units that joined an open deal by mistake. Reuse the same submissionId and payload after an uncertain response. Finishing requires complete disjoint physical accounting and zero pending imports. | No | No | Yes | No |
spellbook_collection_receiptRead one receipt for the cards a workspace holds: total copies, distinct printings, printings held two or more times, copies with a market price and their market USD total, copies and market USD in each value band, copies and market USD at one dollar and up, the market USD of the most valuable copies up to topUnitsCap, and the top rows by market value with card name, set, collector number, finish, condition, copies, unit market and the Intelligent Pricing TCGplayer ask when one was computed. Call it to answer what a collection holds and what it is worth in one read; it works for a free collection-only workspace and for a store. Call spellbook_inventory_holdings next for every row, or spellbook_buylist_compare for per-destination nets. It reports facts; it does not rank, score or pick what to sell. | No | Yes | Yes | No |
spellbook_commander_case_comparisonRead exact Commander case or deck display membership and USD market-price references for an equivalent set of individual decks. A product named Case or Display, such as Bloomburrow Commander Deck Display, qualifies. Use it to compare that package with its required child quantities. Resolve the numeric case product with spellbook_sealed_product_search first. Returns source-linked recipe counts, case and component price clocks, existing gross EV snapshots, reference arithmetic, missingFields and limitations. A reference difference excludes shipping, stock, taxes and fees; unavailable delivered offers remain explicit. Use spellbook_box_ev_rankings for existing EV alternatives. | No | Yes | Yes | Yes |
spellbook_commander_comparison_factsRead stored facts for one to four exact Commander case or deck products on one shared source-date window. Resolve numeric IDs with spellbook_sealed_product_search first. Returns per-product kind, market price and clock, publication revision and readiness, plus contributor rows with finish, quantity, USD Full EV contribution, aligned source-recorded units and missing-versus-zero state, a comparisonRevision, missingFields and limitations. A stale or absent input, empty window intersection, invalid mapping, missing exact card price or oversized input leaves a product not ready and the response names the gap. A missing catalog market price or clock appears in missingFields and leaves readiness unchanged, because the caller supplies the purchase price. Page with offset, limit and nextOffset; a changed revision requires restarting at offset 0. | No | Yes | Yes | Yes |
spellbook_contents_demandRead cached exact Commander contents with USD Full EV contributions and source-recorded TCGplayer units. Resolve a numeric product ID with spellbook_sealed_product_search. Returns exact printing/finish, quantities, child membership, baseline 100-unit categories, compatible source-date windows, coverage, revisions, expiry, missingFields and limitations. An EV-weighted mean30d uses only value with a complete compatible 30-date observation. Partial and 29-date observations remain labeled. Market units are source-relative observations, not personal sell time. Returns no purchase verdict or ranking. | No | Yes | Yes | Yes |
spellbook_credit_conversion_candidatesRead 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. | No | Yes | Yes | Yes |
spellbook_credit_resale_assessmentAssess 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. | No | Yes | Yes | Yes |
spellbook_customer_evidence_getRead one private immutable evidence receipt from the selected workspace. Returned observations and source fields remain submitted evidence. | No | Yes | Yes | No |
spellbook_customer_evidence_listList a bounded page of private evidence receipts from the selected workspace, optionally filtered by receipt kind, parent, or item ID. | No | Yes | Yes | No |
spellbook_customer_evidence_recordAppend 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. | No | No | Yes | No |
spellbook_deck_contentsRead 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. | No | Yes | Yes | No |
spellbook_deck_import_limitlessImport 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. | No | No | Yes | Yes |
spellbook_ebay_automation_setSet one workspace's eBay automation mode, basic-land preference, copy cap, or month-end allowance policy after the owner chooses the setting. Month-end defaults to off with a 1,000-insertion reserve. Optional stale-single refreshes run in the final 48 hours and stop new ends two hours before the Pacific month resets. Read spellbook_ebay_month_end_status first for capacity and recovery facts. Only the workspace owner may change public listing behavior. The modes: manual: New listings and repricing stay manual. Recovery of listings already ended by month-end management can finish. 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. | Yes | No | Yes | Yes |
spellbook_ebay_combined_shipping_getRead the caller's connected eBay combined-shipping profile and promotional shipping rule, including its provider type, amount threshold or maximum order cost, and configuration status. Call spellbook_ebay_combined_shipping_set after reviewing it. eBay checkout may still require multiple items for an amount-threshold offer; use eBay Seller Hub Shipping discounts when a minimum amount must qualify one item. | No | Yes | Yes | No |
spellbook_ebay_combined_shipping_setSet the caller's connected eBay combined-shipping charge and optional amount-threshold offer or maximum shipping cost per order, then return Account API readback. Read spellbook_ebay_combined_shipping_get first. Configure an amount-only single-item Shipping discount separately in Seller Hub. | Yes | No | Yes | Yes |
spellbook_ebay_connect_linkGet the SpellBook Finance page where the seller connects their eBay account. Call spellbook_ebay_connection_status first. Hand the seller only this one link and tell them to sign in to SpellBook Finance, press Connect eBay, then sign in at eBay and approve the connection. Once they finish, call spellbook_ebay_connection_status again. The agent never receives the eBay consent URL, a password, or a token. | No | Yes | Yes | No |
spellbook_ebay_connection_statusCheck 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. | No | Yes | Yes | Yes |
spellbook_ebay_job_statusRead 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. A job with dryRun true is a reprice preview: it changed no eBay price, and totalItems counts the listings a live run would reprice. Returns state, counts, per-card items, failures and missingFields. | No | Yes | Yes | Yes |
spellbook_ebay_lot_publishPublish a player-built deck from one workspace as ONE live eBay listing in eBay's player-built decks category. You choose the cards, the title, the summary, the ask and the shipping charge. This tool never suggests a price, ranks cards or picks a deck for you. It reports, per card, how many free near-mint copies the workspace holds and, when deckFormat is set, whether Scryfall lists the card as legal in that format. ALWAYS call it once with dryRun true and show the person the preview, the per-card counts and the refusals before calling it again with dryRun false, because a live run creates a real listing a real buyer can buy. A live run returns the eBay listingId and listingUrl, or the refusals. It does not reserve the copies, and it does not know whether another channel sells them first. | Yes | No | No | Yes |
spellbook_ebay_month_end_statusRead an owner's eBay month-end policy, estimated remaining insertions, reserve, usable capacity, Pacific execution window, and current recovery counts. Remaining already includes reserved active renewals and the existing margin. It returns facts, missingFields, and limitations; it does not establish eBay's exact billing balance or a sales benefit from refreshing. | No | Yes | Yes | Yes |
spellbook_ebay_order_discount_disableDisable the caller's tracked eBay order-discount promotion after reading spellbook_ebay_order_discount_get. This ends the tracked promotion and requires agent_marketplace_publish authorization. | Yes | No | Yes | Yes |
spellbook_ebay_order_discount_getRead the caller's tracked eBay order-discount promotion, including store or lot scope, quantity threshold, percentage, status and dates. workspaceId is checked for owner access; the promotion belongs to the caller's connected eBay account. | No | Yes | Yes | No |
spellbook_ebay_order_discount_setSet a store-wide eBay order discount based on a seller-selected minimum quantity and percentage. Call spellbook_ebay_order_discount_get first; only one tracked order-discount promotion is supported, so this may replace the existing one. | Yes | No | Yes | Yes |
spellbook_ebay_price_bands_getRead one workspace's saved eBay price bands. A band is a market price range in USD for one game. Automatic eBay listing lists a copy only when its market price falls in one of its game's bands, and it ends a live copy that falls outside them. The response lists, per game, the saved bands and how many live eBay copies and live listings sit inside, outside, or without a market price. Call spellbook_ebay_price_bands_set with dryRun true to preview a different set of bands. | No | Yes | Yes | No |
spellbook_ebay_price_bands_setPreview or save per-game eBay price bands, each a market price range in USD. With dryRun true it saves nothing and returns, per game, how many live eBay copies and listings the bands would keep, end, or leave because they have no market price. With dryRun false it saves the bands and returns the same counts: SpellBook Finance then ends live eBay copies whose market price falls outside their game's bands, in the background and again in a daily sweep, and keeps out-of-band copies off eBay. A live save needs no dry run first. Only the workspace owner may call it, and the agent saves bands only after the seller chose them. | Yes | No | Yes | Yes |
spellbook_ebay_price_limit_enrollment_continueAdvance one bounded discovery step of an existing eBay enrollment and return its header. Read spellbook_ebay_price_limit_enrollment_get first for the current state version. The server chooses each discovery page; repeat from fresh readback while building, then ask the owner to review in the web app. | No | No | No | Yes |
spellbook_ebay_price_limit_enrollment_getRead one eBay price-limit enrollment's state, coverage counts, fingerprint and original expiry. Call after preparation or continuation. Read stored baselines with spellbook_ebay_price_limit_enrollment_pages; continue building with spellbook_ebay_price_limit_enrollment_continue. | No | Yes | Yes | No |
spellbook_ebay_price_limit_enrollment_pagesRead bounded stored pages of eBay enrollment identities, observed baselines, absolute bounds and exclusions. Call after spellbook_ebay_price_limit_enrollment_get. Follow nextCursor until null to inspect all stored pages; read the header again for overall completion. | No | Yes | Yes | No |
spellbook_ebay_price_limit_enrollment_preparePrepare an account-wide enrollment proposal from explicit owner-selected bounds and times. Returns a durable header and coverage counts. Explain the quiet interval prerequisite before calling: controlled price admissions and relevant membership changes can invalidate discovery. Continue with spellbook_ebay_price_limit_enrollment_continue; the owner reviews and activates in the web app. | No | No | No | Yes |
spellbook_ebay_price_limits_getRead active and pending eBay fixed-baseline price limits, enforcement status and missing evidence. Call before preparing a new enrollment with spellbook_ebay_price_limit_enrollment_prepare. Expiry stops new admissions; earlier admitted writes may still finish. | No | Yes | Yes | No |
spellbook_ebay_pricing_approval_executeExecute the frozen targets of an owner-approved exact eBay pricing batch. First prepare with spellbook_ebay_pricing_approval_prepare and read owner approval with spellbook_ebay_pricing_approval_get. Returns durable execution and per-listing outcome evidence; read the same operation again to inspect progress. | Yes | No | Yes | Yes |
spellbook_ebay_pricing_approval_getRead one exact eBay pricing batch's immutable targets, owner approval state and per-listing submission and readback evidence. Call after preparation or execution. Use spellbook_ebay_pricing_approval_execute only after owner approval; keep unknown submissions distinct from observed prices. | No | Yes | Yes | No |
spellbook_ebay_pricing_approval_preparePrepare an immutable eBay pricing batch from selected inventory items. Returns exact listing identities, executable USD cents, complete physical membership and approval state. Ask the owner to review the batch in the web app, then call spellbook_ebay_pricing_approval_get before execution. | No | No | No | Yes |
spellbook_ebay_pricing_restoration_preparePrepare a new exact eBay pricing approval from selected accepted source receipts. Returns eligible listing identities, typed conflicts and missing evidence. First read the source with spellbook_ebay_pricing_approval_get. The owner must choose manual automation and approve the new compensation in the web app; read its approval before spellbook_ebay_pricing_approval_execute. | No | No | No | Yes |
spellbook_ebay_publishPublish 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. | Yes | No | No | Yes |
spellbook_ebay_repricePreview or reprice existing live eBay listings in one seller workspace using owner-accepted saved rules or a market multiplier and optional floor. Read spellbook_agent_pricing_protection first. A workspace in saved_rules_only mode requires pricing saved_rules; the server uses its accepted rules. 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. A preview with itemIds returns its counts at once. Any other preview returns state planning and a jobId, so read its counts with spellbook_ebay_job_status. 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. | Yes | No | Yes | Yes |
spellbook_ebay_shipping_mode_getRead the shipping-mode preference saved for the caller's connected eBay account and whether a delegated agent last set it. workspaceId proves owner access only; the preference is account-scoped. | No | Yes | Yes | No |
spellbook_ebay_shipping_mode_setSave the seller-selected shipping mode for the caller's connected eBay account, then return the saved preference. Read spellbook_ebay_shipping_mode_get first; call spellbook_ebay_shipping_policy_set separately to configure charges. This can affect future listing and repricing work across the account's workspaces. | Yes | No | Yes | Yes |
spellbook_ebay_shipping_policy_getRead the caller's connected eBay shipping charges and provider readback. workspaceId proves the caller owns a SpellBook workspace; eBay settings remain scoped to that caller's connected eBay account. Read this before changing shipping charges. | No | Yes | Yes | No |
spellbook_ebay_shipping_policy_setSet a package flat shipping charge and optionally an envelope charge on the caller's connected eBay account, then return provider readback. Read spellbook_ebay_shipping_policy_get first; omitting the envelope amount preserves its current charge. workspaceId is checked for owner access; the connected account belongs to the caller. | Yes | No | Yes | Yes |
spellbook_ebay_unpublishEnd 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. | Yes | No | Yes | Yes |
spellbook_entitlementsRead this authenticated customer's current Investor and Seller access. Flags are not proof of payment or enrollment. | No | Yes | Yes | No |
spellbook_free_seller_workspace_claimSelect one workspace for free Seller access. 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 access state and observed usage. | Yes | No | Yes | No |
spellbook_giveaway_config_getRead one workspace's saved giveaway config. targetMeanUsd is a budget on the band-midpoint estimate of the tier table, not the average value of the cards given. The top band's maxUsd must reach maxDrawUsd for cards near maxDrawUsd to be drawable. targetMeanUsd must stay below the per-channel marketplace price floor, or every roll refuses with target_not_below_ceiling. | No | Yes | Yes | No |
spellbook_giveaway_config_setReplace one workspace's saved giveaway config. Resend every field. targetMeanUsd is a budget on the band-midpoint estimate of the tier table, not the average value of the cards given. The top band's maxUsd must reach maxDrawUsd for cards near maxDrawUsd to be drawable. targetMeanUsd must stay below the per-channel marketplace price floor, or every roll refuses with target_not_below_ceiling. | Yes | No | Yes | No |
spellbook_guidesFind 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 catalog entries, not guide bodies. After a purpose and decision match the customer's question, read that entry's resourceUri through MCP before applying its rules or drafting the answer. The resource supplies the full guide, including domain conditions and missing-data stop rules. Use its URL only as a fallback. Public search-acquisition articles are excluded. For screening, valuing, or messaging about a Pokémon collection or Marketplace lot, read spellbook_skill with name collection-buying. | No | Yes | Yes | No |
spellbook_inventory_bin_ensureRecord 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. | No | No | Yes | No |
spellbook_inventory_channel_stateRead recorded channel state, asks and saved timestamps for exact inventory copies after a listing or sync action. Returns missing evidence alongside saved facts. A saved live row does not establish completion of a new write. Use the returned job's status tool to check that job's completion. | No | Yes | Yes | No |
spellbook_inventory_holdingsRead 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. | No | Yes | Yes | No |
spellbook_inventory_import_csvImport a seller's own ManaBox export or TCGplayer inventory export into one workspace, the same import the SpellBook Finance web app runs. The server parses the CSV, resolves each row to an exact printing, preserves mapped location labels or assigns fallback 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. | No | No | Yes | No |
spellbook_inventory_incomingRead 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. | No | Yes | Yes | No |
spellbook_inventory_incoming_receiveMark 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. | No | No | Yes | No |
spellbook_inventory_items_queryRead one private page of existing physical Items matching an exact acquisition source, exact bins, or printing, finish and condition groups. Coordinate filters narrow source or group results. Each Item carries scanPlacement, its approximate position in its scanned bin as ordinal of total, or null when it was never scanned there. | No | Yes | Yes | No |
spellbook_inventory_location_confirmSave 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. | Yes | No | Yes | No |
spellbook_inventory_management_getRead the connected TCGplayer or ManaPool account's saved listing scope, server-reported legacy full-account restore eligibility, managed-copy count, and selected-policy membership-key count. The selected key count does not total legacy all-mode remote listings. Supply candidateIds only from SpellBook Finance's existing named listing rows or holdings. Results report saved facts and unresolved identities; they do not choose which rows to manage. New accounts start with no managed listings. A backfilled legacy account may restore full-account management after switching to named listings. | No | Yes | Yes | No |
spellbook_inventory_management_setChange one seller-owned channel's saved listing scope. Read spellbook_inventory_management_get first. Switching legacy all mode to selected mode clears management for all current listings. On an eligible backfilled account, restore_legacy_all explicitly manages every current and future listing on that connected seller account; saved automation settings remain unchanged. In selected mode, use a named candidateId from current SpellBook Finance rows to manage or stop managing a complete listing. Stopping management leaves its live listing and order history intact. These actions save permission for existing automation and do not enable automation or publish a listing. | Yes | No | Yes | No |
spellbook_inventory_precon_importAdd opened Commander precon decks, displays or cases to inventory as individual cards, the same Add Commander deck flow the web app runs. The server reads the cached decklist for that TCGplayer product, splits a display or case into its decks, creates one inventory copy per card at the exact printing, assigns bins, and splits the price paid across the cards. Returns importId, copy count, and bin counts with deckName. | No | No | No | No |
spellbook_item_photo_upload_linkGet a link where the seller uploads their own phone photos of the front and the back of one inventory copy, so the next eBay listing shows that exact card beside catalog art. Use it when the seller wants buyers to see the real card, when a buyer asks to see the back, 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 and a photo of the card back. No photo passes through you. After they say the photos are saved, call spellbook_ebay_publish for that copy. | No | Yes | Yes | No |
spellbook_japan_source_scanRead 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. | No | Yes | Yes | Yes |
spellbook_japanese_sourcingRead 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. | No | Yes | Yes | Yes |
spellbook_manapool_automation_setSet 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. | Yes | No | Yes | Yes |
spellbook_manapool_connect_linkGet 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. | No | Yes | Yes | No |
spellbook_manapool_connection_statusCheck 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. | No | Yes | Yes | No |
spellbook_manapool_sync_applySend 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. | Yes | No | No | Yes |
spellbook_manapool_sync_previewCompare 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. | No | Yes | Yes | Yes |
spellbook_marketplace_listings_adopt_applyAdopt the listings in a ready preview from spellbook_marketplace_listings_adopt_preview. Each remote copy is linked to an owned item or gets a new item in the channel's import bin (EBAY-IMPORT, TCG-IMPORT or MANAPOOL-IMPORT), and the listing is recorded as managed by SpellBook. Each adopted printing gets an exact price lock at its live price. Nothing on the marketplace is edited, ended or relisted, and nothing is published. Applying runs in the background. The first answer has applyStatus applying. Call spellbook_marketplace_listings_adopt_preview with previewId latest until applyStatus is applied. Show the person the preview before the first call. | Yes | No | Yes | Yes |
spellbook_marketplace_listings_adopt_previewRead the live listings on the workspace's connected eBay, TCGplayer or ManaPool account and preview how each one maps to an exact printing, without changing the marketplace or inventory. Omit previewId to start a read. The read runs in the background, so the first answer has status queued or reading. Call again with previewId latest until status is ready. A ready preview lists adoptable listings with the printing, finish and condition read from each one, the facts that named it (matchSource), and how many copies link to owned items or need a new item. Unmatched listings carry one reason each. Show the person the counts and cap, then call spellbook_marketplace_listings_adopt_apply with the previewId. | No | No | Yes | Yes |
spellbook_marketplace_onboardingRead how a seller onboards to one channel-lane marketplace and where this workspace's lane stands. It returns the venue's ordered onboarding steps with who does each step, what each needs, where it happens, and its sources, plus the venue's fees, seller levels, and accepted conditions. It also returns the workspace's lane: whether it exists and is enabled, whether SpellBook Finance holds the seller's key for the venue, whether the venue flag is on, whether SpellBook sync exists for the venue, and live and unconfirmed listing counts. Call it when a seller asks how to start selling on Misprint, or why nothing lists there. Walk the seller through the steps they have not done. While lane.connected is false, hand the seller the url of the step that connects the venue to SpellBook Finance, where the seller pastes the key themselves. Call this tool again after they finish. For eBay or ManaPool, call spellbook_ebay_connection_status or spellbook_manapool_connection_status. | No | Yes | Yes | No |
spellbook_moversRead published daily/weekly card price movers or supported 30d/90d sealed reports. Returns gainers/losers, reported game/printing/finish when supplied, current and previous USD prices, stored pctChange, swing30d, cardUrl and run/publication dates. Daily/weekly reported percentages and direction lists have producer caps over covered source candidates; read the limits. Capped ties do not identify the largest uncapped market move. For what increased this week, use window=weekly, then read the pricing guide through spellbook_guides and its returned resource URI for window, cap and clock interpretation. A printing price read qualifies one reported candidate; missing source dates remain unknown. | No | Yes | Yes | Yes |
spellbook_mtg_pack_simulatorOpen one reproducible modeled Magic booster pack from an exact parent booster box ID. Omit boxId to discover current candidates for setCode (default fdn). A chosen product returns only the sampled exact printings, modeled finish, nullable USD references, seed, retained model date, missingFields and limitations. Seed is an unsigned 32-bit integer with deterministic default 0. Reusing a seed and unchanged retained model reproduces the draw. Independent weighted draws can repeat cards; factory collation and original-source completeness are unverified. Unavailable returns a concrete reason without substituting another booster. This is read-only play, not a purchase recommendation or physical inventory opening. | No | Yes | Yes | No |
spellbook_order_proof_photosRead the packing proof photos for ONE order: a view link for each pull line the packer photographed, with card name, finish, condition and capture time, plus the order's lines that have no photo. Use it to answer whether an order's cards were photographed before shipping, or to gather evidence for a dispute. Photos come from the packer's own camera in the pull flow. This tool only reads them and cannot upload one. | No | Yes | Yes | Yes |
spellbook_pokemon_arbitrage_spreadsRead 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. | No | Yes | Yes | Yes |
spellbook_pokemon_athRead 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. | No | Yes | Yes | No |
spellbook_pokemon_market_analyticsRead 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. | No | Yes | Yes | Yes |
spellbook_pokemon_metagame_archetypeRead 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. | No | Yes | Yes | No |
spellbook_pokemon_metagame_cardRead 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. | No | Yes | Yes | No |
spellbook_pokemon_metagame_overviewRead 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. | No | Yes | Yes | No |
spellbook_pokemon_tcg_staged_previewPreview 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. | No | Yes | Yes | No |
spellbook_pricing_amendment_createCreate 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. | No | No | No | No |
spellbook_pricing_amendment_deleteDelete one saved pricing amendment by exact amendment id and return a deletion readback. This changes saved configuration and does not publish or trigger repricing. | Yes | No | Yes | No |
spellbook_pricing_amendment_getRead one saved pricing amendment's selector, marketplace scope, absolute multiplier, optional protected band, enabled state, priority and timestamps. Use it before an update, preview or delete. | No | Yes | Yes | No |
spellbook_pricing_amendment_previewStart or run a bounded preview for one saved amendment or one seller-selected draft. Returns customer-safe per-channel impact counts and status evidence, with no raw inventory rows or demand telemetry. Preview is not publication. | No | No | No | No |
spellbook_pricing_amendment_preview_statusRead one pricing amendment preview job's bounded status and per-channel customer impacts. It returns counts, quantities, delta totals, timestamps, missing evidence and limitations. It never publishes or reprices. | No | Yes | Yes | No |
spellbook_pricing_amendment_updateUpdate selected fields on one saved pricing amendment and return saved readback. Omitted fields preserve existing values, including server-owned demand behavior. The update does not publish or trigger repricing. | Yes | No | Yes | No |
spellbook_pricing_amendments_listList bounded seller pricing amendments with selector, marketplace scope, absolute multiplier, protected band, enabled state, priority and timestamps. It returns a cursor plus missing evidence and limitations. | No | Yes | Yes | No |
spellbook_pricing_decision_explainRead one seller listing's recorded pricing evidence for one marketplace. Returns the last recorded ask, market anchor, safe price effect, decision timestamps and whether the evidence is observed, recorded, projected or missing. Call this when a seller asks what price was saved or what evidence supports it, then use the seller controls tools when they want to inspect or change a setting. It never claims a remote marketplace ask is current without a remote observation timestamp. Separately timestamped performance pools this workspace card across editions and finishes and reports sampled exposure, sales, uncertainty and gaps; it does not recompute the saved price. | No | Yes | Yes | Yes |
spellbook_pricing_profile_activateActivate one seller-selected pricing profile and return its saved readback plus resulting active profile id. The first profile remains inactive until this explicit call. Activation does not publish or trigger repricing. | Yes | No | Yes | No |
spellbook_pricing_profile_createCreate one seller pricing profile from a seller-selected name and explicit baseline multiplier and floor, with optional dollar offset, ordinary channel overrides, or a fixed equal-probability eBay base-price trial. A trial requires an explicit experiment id, positive allocation epoch and two different seller-selected multipliers. Returns saved profile and pin readback. It does not activate, publish or immediately reprice. | No | No | No | No |
spellbook_pricing_profile_getRead one seller pricing profile's approved multiplier, floor, dollar offset, ordinary value bands, channel overrides, and any configured fixed eBay base-price trial, then report active state and channel pin facts. Call it before an update or activation. | No | Yes | Yes | No |
spellbook_pricing_profile_updateUpdate selected seller-approved fields on one pricing profile and return saved profile and pin readback. Omitted fields stay unchanged. Null clears one channel override or only its eBay base-price trial. | Yes | No | Yes | No |
spellbook_pricing_profiles_listList seller-created pricing profiles by name and active state, plus the resulting active profile id. Call it before choosing a profile for detail, update, activation or channel pinning. | No | Yes | Yes | No |
spellbook_printings_searchFind an exact card printing before recording a physical copy or forming a price. Searches by name, and narrows with `set:<code>` plus a collector number in the same query string, for example "Pikachu set:sv2a 025/165". Pokemon searches can filter English or Japanese catalog rows. Returns each printing with its product identity, game, language, set code, collector number, rarity and available finishes. Read this first, because a card name alone does not identify a printing, and a wrong printing values the wrong card. | No | Yes | Yes | Yes |
spellbook_pull_workRead a page of SpellBook's current fulfillment work, grouped by marketplace order. Each order carries its tray slot and card lines with bin, printing, condition, and state, including blocked reasons and ship-by evidence when available. Use when a seller asks what to pull or pack. Read spellbook_skill for fulfilling-orders before coaching the workflow; follow nextCursor until hasMore is false before summarizing the full returned workset. Use pending lines for the shared bin walk, then verify and pack each order separately. | No | Yes | Yes | No |
spellbook_purchase_incoming_recordRecord single cards the customer bought on a marketplace that have not arrived yet, one row per exact printing with the quantity and the price paid per copy. Each copy is written as pending receipt under one order, so it counts as incoming and cannot be listed or sold until it is received. Returns the order's acquisitionSource, the copy count, the total cost and the bins the copies will go into. Use it right after the customer completes a marketplace checkout for singles found through spellbook_buy_targets or spellbook_singles_buylist_spreads. It never buys anything and moves no money. A card already in hand goes through spellbook_inventory_bin_ensure instead. When the package arrives, call spellbook_inventory_incoming_receive with the returned acquisitionSource. | No | No | Yes | No |
spellbook_repeat_buyersRead which of the signed-in seller's buyers ordered more than once, across every channel SpellBook syncs orders from, and what happened after a free card shipped in an order. Returns overview counts and shares, weekly returning-order shares overall and per channel, buyerList with each repeat buyer's display name, channels, order count, spend and first and last order dates, and recipients with each free card recipient's prior and later orders and a status of came_back, bought_before or first_order. Call it when a seller asks who their repeat customers are, how many buyers come back, which buyers buy on more than one marketplace, or what free card recipients did next. It reads every workspace the seller belongs to and takes no input. | No | Yes | Yes | No |
spellbook_return_addressRead the signed-in seller's saved return address: the name, street line, and city-state-ZIP line SpellBook prints on shipping labels, plus the other settings stored beside it. profile is null when the seller never saved one. Read it before spellbook_return_address_save, so the agent can show the seller what is on file. | No | Yes | Yes | No |
spellbook_return_address_saveSave the return address the seller gave, which SpellBook prints on shipping labels and which store setup counts as returnAddressSaved. It replaces only the name, street, and city-state-ZIP lines and keeps every other saved setting. Only the workspace owner may call it, and only with an address the seller stated. A seller who does not want to share a home address in chat can type it on a SpellBook page, which the limits name, so offer that page before you ask for the address. Call spellbook_store_setup_status afterwards to confirm returnAddressSaved. | Yes | No | Yes | No |
spellbook_returned_package_caseRead one exact returned-order case, its original order and contents, inspection and dispatch history, and every saved replacement document. Each document carries a newly signed short-lived download URL, so use this read again when an older link expires or after a reship is resolved. Historical preparations are labeled explicitly. This owner-scoped read changes no return, shipment, inventory, postage or marketplace state. | No | Yes | Yes | No |
spellbook_returned_package_lookupFind shipped orders by marketplace order id, order label, tracking number, pull session id, or part of a buyer name or street line, and read each exact order's shipment facts and newest return case. Use it when a package came back before calling spellbook_returned_package_record. A multi-order pull sheet returns separate exact-order matches, each with its own returnCase. Use externalOrderId to record one selected order from a shared sheet. Each match carries sessionId, marketplace, externalOrderId, buyerName, shippedAt, trackingNumber, destinationSummary, packed and unresolved line counts, and returnCase. Card names are omitted to keep maximum batch responses bounded. Returns one row per identifier with status matched, ambiguous or not_found, plus missingFields. After recording a returned order, read its exact contents with spellbook_returned_package_case and find its task in spellbook_returned_package_work. | No | Yes | Yes | No |
spellbook_returned_package_recordRecord that a shipped order returned to the seller unopened. Pass the sessionId and exact externalOrderId from spellbook_returned_package_lookup when the pull sheet has several orders. Each selected order gets one return case with unconfirmed contents and appears automatically in spellbook_returned_package_work. This records the seller-reported reason; it does not refund, change inventory, postage or a marketplace. Returns one row per selected order with status recorded, already_open or failed, caseId and errorCode. | No | No | Yes | No |
spellbook_returned_package_reship_dispatchExplicitly record that the seller mailed a returned order using its current preparation. Choose tracked with the tracking number or stamped/untracked with no tracking number, and send mailingConfirmed true only after mailing. The case resolves and leaves active work; its original order shipment remains unchanged. SpellBook does not verify carrier acceptance, buy postage, contact the buyer, or update a marketplace. | No | No | Yes | No |
spellbook_returned_package_reship_preparePrepare the current reship address for a returned order recorded with spellbook_returned_package_record. Pass the caseId and correctedDestination for an address_issue return; other reported reasons can reuse the saved original destination. A preparation is saved and remains current across reads. The returned row includes preparationId and the order-specific address. This legacy CSV preparation buys no postage and changes no shipment, stock or marketplace state. For a new reship, use spellbook_returned_package_reship_print and spellbook_returned_package_reship_dispatch. The older tracking-completion operation remains only for compatibility. | No | No | Yes | No |
spellbook_returned_package_reship_printCreate or recover the immutable replacement-address PDF for one returned-order task. Use the current preparationId from spellbook_returned_package_work or spellbook_returned_package_reship_prepare. The address label is available directly. A contents page is optional and separate from the intact-package happy path. The receipt identifies its exact order and preparation and includes a short-lived download URL. This prints no postage and does not mean the package was mailed. | No | No | Yes | No |
spellbook_returned_package_reship_trackingCompatibility operation for reships completed outside the new Pull Sessions flow. Records tracking evidence supplied by the seller and resolves the case with resolution reship. It does not prove that an operator explicitly confirmed mailing, and it must not be called by new file-import or print flows. New reships use spellbook_returned_package_reship_dispatch with an explicit tracked or stamped/untracked mailing confirmation. | No | No | Yes | No |
spellbook_returned_package_workList active returned-order tasks in a seller workspace. Each task includes an exact externalOrderId when one order is identified, plus original destination evidence, return reason, case version and current saved preparation including the corrected destination. Historical mixed-order cases stay visible as blocked inspection tasks without selecting a candidate. Use this after spellbook_returned_package_record or after reconnecting to resume the same task. The read does not change shipment, inventory, refund, postage or marketplace state. | No | Yes | Yes | No |
spellbook_riftbound_catalogRead up to 20 exact Riftbound printings with collector identity, art-series variant, regular and foil TCGCSV market references, stored price dates and known catalogued sets. Use it for a Riftbound card checklist or set list. Follow nextAfter to page through results. A catalogued count is the number of SpellBook Finance rows, not a publisher total; completeness is unknown. Prices are stored market references, not executable offers. Missing prices stay null. A stored price date is not an exact observation time, and per-finish provider time is usually unavailable. | No | Yes | Yes | No |
spellbook_riftbound_japanese_comparablesRead physical Japanese-language Riftbound observations, separate from English cards sold in Japan. Returns exact SKU language, finish, condition, price kind, source links, actual price capture timestamps, freshness policy, per-source eligible denominators and nullable acceptance rates. ManaPool is unsupported_game. Distinguishes unavailable, stale, completed eligible zero and accepted evidence. TCG Market is a provider statistic, not a completed sale or guaranteed resale proceeds. asOf is query time. An empty result never implies a market price of zero or proves market-wide coverage. | No | Yes | Yes | No |
spellbook_sale_recordRecord a sale of cards the seller's workspace holds that happened outside SpellBook's order intake, such as a local game store buy, an in-person trade, or a one-off marketplace sale SpellBook did not import. Names the exact printing, finish, condition, quantity and unit sale price. It marks that many copies sold, oldest first, closes the position so spellbook_inventory_holdings and spellbook_buy_outcome_report reflect it, and pulls those copies off every marketplace where they are still live. Returns the sold item ids and the holding after the sale. | Yes | No | Yes | Yes |
spellbook_sales_historyRead a workspace page of recorded sales with card identity, recorded marketplace and order reference, sale-time bin, gross price, refunds and source clocks. Use it to inspect saved sales after inventory or sale activity. Follow nextCursor for more recorded history; use current pull work to inspect packing tasks. | No | Yes | Yes | No |
spellbook_screenerScreen Magic card printings by recorded US sales activity, native Cardmarket EUR, regular or foil price, foil/nonfoil premium, consecutive weekly price gains, price change and 20 day band statistics in one call. For unusually high foil premiums, use mode=both and sort=premium with a declared regular-price floor. Premium sorts the dimensionless foilPrice/price multiple; the response retains both USD inputs. Read the matching foil-premium guide via spellbook_guides topic pricing and its returned resource URI for identity and interpretation limits. Some snapshots also carry optional printingCount, lastPrintedAt and reserved facts; absent fields stay unknown. For reprint interpretation, use spellbook_guides topic reprint-risk and read the returned resource URI; these facts supply no calibrated set-risk ranking. Each row carries reported printing identity (scryfallId, name, setCode, rarity), price, and change7d, change30d and change90d in percent. Its band fields: ma20 is the mean of the last 20 daily closes. bbPos is where today's close sits inside the 20 day Bollinger band, 0 at the lower band and 100 at the upper, and below 0 or above 100 outside it. bbWidth is the band's width as a percent of ma20. z20 is today's close minus ma20, in 20 day standard deviations. squeeze and squeezeRecent say whether the Bollinger band sat inside the Keltner channel today, or on any of the last 5 days. flatDays counts the days since the price last changed. swing30d is the typical 30 day move: the median absolute 30 day change, in percent, over the last 90 daily closes. Call it to answer "which cards sit near the bottom of their recent range", "which cards fell this month inside a 90 day rise", "which cards moved far past their usual size this month" or "which prices have gone quiet", then call spellbook_card_prices for one printing's per-source prices. Rows come back in the sort the caller names. Nothing is scored, labeled or chosen for you. | No | Yes | Yes | Yes |
spellbook_sealed_deal_boardRead the Sealed Deal Board: sealed boxes and decks that third-party stores list, one row per product and currency. Each row carries the store, productUrl, retailerPriceUsd, marketPrice (the product's TCGplayer market price, USD), anchorPriceUsd with anchorSource, tcgProductId, shippingPolicy and age stamps: firstSeenAt, firstSeenBasis, priceBeatenAt with priceBeatenFromUsd, and recencyEventAt, the later of the two, to answer "what is new since <date>" without diffing the board. Each row names its boardLens: crack_ev (opening EV above a per-type price multiple and dollar spread; booster display 1.0x and $10) or below_market (collector-style boxes, judged against the market anchor). Admission is not a buy or open recommendation. Filter by game, productType, currency and q (catalog name words such as innistrad); results page by limit with nextCursor, null on the last page. Without Investor access you get the public preview, with entitled false. Call spellbook_sealed_product_offers with a tcgProductId for every store's offer and the sold comparables. Compare retailerPriceUsd with marketPrice yourself; rows are facts, unranked. tcgplayerBuyUrl is a SpellBook Finance affiliate link to the TCGplayer page; say so when you share it. | No | Yes | Yes | Yes |
spellbook_sealed_intent_default_setSet a workspace rule for future extension-captured sealed purchases. An exact game and productType wins over wildcard rules. Read spellbook_sealed_intent_defaults before and after; existing units keep their current marks. | Yes | No | Yes | No |
spellbook_sealed_intent_defaultsRead a workspace's future sealed-purchase open or hold defaults. Call this before changing how extension-captured products are classified. These rows affect future captures only; spellbook_sealed_portfolio reports marks already on physical units. | No | Yes | Yes | No |
spellbook_sealed_listing_pauseRemove one SpellBook-managed sealed listing from ManaPool or set its TCGplayer quantity to zero through the paired browser. Call spellbook_sealed_listing_preview first and pass its channel and intentRevision unchanged. A product with no saved SpellBook intent cannot be removed by this tool. | Yes | No | No | Yes |
spellbook_sealed_listing_previewPreview one sealed listing on ManaPool or TCGplayer without publishing. Returns the proposed quantity and ask, any current offer, TCG publisher readback state, stock and intent revisions, and blockers. For TCGplayer, the first call may queue an exact seller-grid SKU read; call again after the paired extension finishes. After submitting, call preview again: publisher.state live confirms an offer, and removed confirms a zero-quantity removal. Pass this preview's channel, ask, and revisions to spellbook_sealed_listing_submit. | No | Yes | Yes | Yes |
spellbook_sealed_listing_submitSubmit one sealed product listing to ManaPool or TCGplayer at the exact quantity and ask shown by spellbook_sealed_listing_preview. Pass the same channel and product arguments, plus proposed.stockRevision, proposed.askUsd, and intentRevision unchanged. ManaPool submits directly. TCGplayer queues the paired browser writer. A queued TCG write is pending until an exact seller-grid readback confirms it. | Yes | No | No | Yes |
spellbook_sealed_portfolioRead a seller's sealed boxes, packs and cases, with quantity, cost basis, market price, heldQuantity, openIntentQuantity, acquisitionSource and workspaceId for each purchase entry. Call this to reconcile physical sealed stock before listing or opening it. Recovered components can have unknown allocated cost basis and an approximate recovery date. A hold differs from an actual opening; call spellbook_sealed_portfolio_hold_set to correct a holding mark. | No | Yes | Yes | No |
spellbook_sealed_portfolio_hold_setMark every still-sealed unit in one purchase entry as a long-term hold, or release that hold. A hold keeps physical inventory and market value but excludes those units from sealed listing. Read spellbook_sealed_portfolio before and after to check heldQuantity. | No | No | Yes | No |
spellbook_sealed_portfolio_openRecord that an exact quantity of sealed boxes or packs has already been physically opened. Use the entryId from spellbook_sealed_portfolio and read the returned counts; the same entryId and quantity safely replay after a timeout. The historical opening date stays unknown, and recordedAt means when SpellBook recorded the status. No singles are created. | Yes | No | Yes | No |
spellbook_sealed_portfolio_open_intent_clearClear the plan to open every still-sealed unit in one purchase entry. Call this when spellbook_sealed_portfolio shows openIntentQuantity for stock the seller intends to keep sealed; then read the portfolio again. This preserves the units and any holding mark. | Yes | No | Yes | No |
spellbook_sealed_portfolio_receiveMark one incoming sealed display purchase entry as physically received after the seller confirms its arrival. Call spellbook_sealed_portfolio first to identify the incoming entry, then read it again to confirm its current state. A unit already opened remains opened. This preserves its holding mark and opening plan. | Yes | No | Yes | No |
spellbook_sealed_portfolio_recordRecord one sealed acquisition the customer has already made, so the buy can be scored later against what it cost. Names the catalog boxId, the quantity, the unit price paid as a decimal string, and the acquisition date. Use it after a seller buys a box, pack or case found through spellbook_sealed_deal_board. It records a purchase that happened; it never buys anything and moves no money. | No | No | No | No |
spellbook_sealed_price_targetRead one saved sealed retailer price target, its activation status and observed match facts. Call after creating or changing a target. Use spellbook_sealed_price_target_update to change terms; matching facts do not establish delivery, stock or checkout completion. | No | Yes | Yes | No |
spellbook_sealed_price_target_createCreate a local sealed retailer price target and return its saved status and observed match facts. Call with an exact product and explicit native-currency threshold. Read spellbook_sealed_price_target next; a target records observations without reserving or purchasing products. | No | No | No | Yes |
spellbook_sealed_price_target_disableDisable a sealed retailer price target and return saved status and match facts. Read spellbook_sealed_price_target first to confirm identity. Use spellbook_sealed_price_target_rearm to observe again; disabling never cancels an external purchase. | Yes | No | Yes | No |
spellbook_sealed_price_target_rearmRearm a sealed retailer price target and return active status with reset match evidence. Read spellbook_sealed_price_target first to confirm identity. Read it again for new observations; rearming does not verify delivery eligibility or purchase anything. | Yes | No | No | Yes |
spellbook_sealed_price_target_updateChange a sealed retailer price target's terms and return saved status and match facts. Read spellbook_sealed_price_target first; changing terms rearms observation. Read the target again for current evidence, which can remain unknown until a snapshot is observed. | Yes | No | No | Yes |
spellbook_sealed_product_offersInspect one exact TCG product ID's sealed offers and their source times. Each offer includes the exact store listing, its local price, the crawl's actionability observation, and the selected exit comparable with its evidence date. The board shows one row per product and currency; this list holds every offer. Each offer carries boardAdmission {lens, admitted, reason}: whether the board's rules admitted that listing at publish time. lens is boardLens, crack_ev or below_market, as defined on spellbook_sealed_deal_board. Admission is not a buy or open recommendation. Opening EV is not intact resale value. Empty title or null computedAt can mean missing snapshot. A store URL handle is not identity evidence; productTitle and tcgProductId are. tcgplayerBuyUrl is a SpellBook Finance affiliate link to the TCGplayer page; say so when you share it. | No | Yes | Yes | Yes |
spellbook_sealed_product_searchSearch sealed catalog identity and available offer records by a third-party listing's name, set and product type. catalogMatches covers boxes, packs and cases, returning exact product IDs, kind, physicalLanguage, form, contentsState, intact marketPrice with marketPriceObservedAt, coverage (priceState, modelState, evState, totalEv, missingInput), and a cached pokemonEvDisplay when available. A Pokemon tier partial gives a numeric priced-component value with valueScope and missingFields; it may include an exact identified promo. It is not full product EV or a lower bound and must not be ranked as one. A zero-observation rare-tail gross bound, when present, uses the stated maximum copies per pack, representative independent packs and frozen subtype prices; it ignores displaced card value and is not added to the central partial value. products returns deal rows with modeled totalEV and offer evidence when supported. Call spellbook_sealed_product_offers with a deal row's tcgProductId for retail references, available sold comparables and freshness. This tool carries no per-pack distribution; for how many packs until opening is likely profitable, how swingy a box is, or what share of packs beat the pack price, call spellbook_box_ev_rankings with q set to the product name. The backend chooses the public or entitled response. A public response sets teaser true and returns fewer deal rows. Each TCGplayer product id carries tcgplayerBuyUrl, a short SpellBook Finance affiliate link to that TCGplayer page. Say it is an affiliate link when you share it. | No | Yes | Yes | Yes |
spellbook_sealed_recovered_component_recordRecord sealed packs recovered from already-opened products, without adding a new purchase or guessing their share of the parent product's cost. This bounded intake accepts the confirmed Aetherdrift Box Topper and Modern Horizons 3 Collector Booster Sample Pack products. It records zero incremental cash, keeps parent basis unallocated, marks recovery timing approximate, and returns persisted-row readback. Reuse requestId unchanged after a timeout. | No | No | Yes | No |
spellbook_sealed_shopping_listRead a saved sealed shopping list page with exact products, quantities and context. Call before editing; null list means uncreated, while a saved empty list has a header. Follow nextCursor or call spellbook_sealed_shopping_offers for observed offer facts. | No | Yes | Yes | No |
spellbook_sealed_shopping_list_contextSave destination, market and currency context and return a list header. Call after reading spellbook_sealed_shopping_list; null clears a field and omission preserves it. Call spellbook_sealed_shopping_offers next; destination context does not prove shipping eligibility. | Yes | No | Yes | No |
spellbook_sealed_shopping_list_deleteDelete a saved sealed shopping list and return a removal receipt. Read spellbook_sealed_shopping_list first to confirm its contents. A missing list returns an error; a later list read returns null until a list is created again. | Yes | No | Yes | No |
spellbook_sealed_shopping_list_quantityChange one existing sealed shopping line quantity and return the saved line. Read spellbook_sealed_shopping_list first to confirm identity; a missing line returns an error. Call spellbook_sealed_shopping_offers next to read quantity fit. | Yes | No | Yes | No |
spellbook_sealed_shopping_list_removeRemove one saved sealed shopping line and return a removal receipt. Read spellbook_sealed_shopping_list first to confirm the exact product. A missing line returns an error; read the list again to inspect remaining lines. | Yes | No | Yes | No |
spellbook_sealed_shopping_list_upsertSave one exact product and its requested quantity, returning the saved line. Call after resolving product identity; an existing line is replaced. Read spellbook_sealed_shopping_list first, then spellbook_sealed_shopping_offers for offer facts. | Yes | No | Yes | No |
spellbook_sealed_shopping_offersRead a bounded saved-list page with qualified observed offers for each exact product and requested quantity. Call after saving products and context; follow nextCursor for remaining lines. Read quantity fit, destinationStatus, missingFields and limitations before interpreting any subtotal. | No | Yes | Yes | No |
spellbook_seller_plan_checkout_linkGet the checkout page for a seller-chosen Store plan on one workspace: a Stripe page, or a Shopify charge approval page for a workspace that installed the SpellBook Finance Shopify app and has no Stripe subscription. Read spellbook_workspace_plan_status first. Skip checkout when sellerToolsUnlocked comes from an active Store plan, person-level Pro, or admin access. The 10,000-unit allowance is soft; do not suggest checkout solely because observed usage exceeds it. Offer paid Store features only when the seller chooses them. Give the returned URL to the seller to enter payment details at Stripe, then re-read plan status to observe its stored state; that status cannot prove payment settled. It refuses a workspace whose plan is already active. | No | No | No | Yes |
spellbook_singles_buylist_spreadsInvestigate Magic TCGplayer NM acquisitions against Card Kingdom buylist payout scenarios. Preserve source timestamps, finish, stock, grading scenarios, and queue degradation; spread is not net realized profit. | No | Yes | Yes | Yes |
spellbook_skillRead the step-by-step procedure SpellBook Finance wrote for a whole customer task, in full. getting-started takes a new seller from sign-in through supplies, bin labels, a first tracked card, and connected marketplaces. buy-loop covers inspecting buy facts for cards or sealed product and recording what happened. collection-buying covers screening a Marketplace or local Pokémon lot, seller questions, per-name printing checks, and recording the buy. physical-placement covers moving one item to a bin and verifying it. fulfilling-orders covers where an order lands, the bin walk that finds each sold card, and who packs, labels, and confirms shipped. Read the matching procedure before that task's first call. Omit name to list each procedure's title. | No | Yes | Yes | No |
spellbook_sku_exact_price_lock_clearClear one seller SKU's unprotected exact-price lock by exact printing, finish and condition. Seller-protected locks refuse agent removal. Call spellbook_sku_price_controls first to inspect protection; the saved readback confirms a successful clear with a null lock. | Yes | No | Yes | No |
spellbook_sku_exact_price_lock_setSet one seller SKU's unprotected exact-price lock and return its saved readback. Identify the exact printing, finish and condition. A seller-protected lock refuses agent changes. Call spellbook_sku_price_controls first to inspect protection. Saving a lock does not publish or trigger repricing. | Yes | No | Yes | No |
spellbook_sku_minimum_floor_clearClear one seller SKU's minimum floor by exact printing, finish and condition. Returns the saved controls readback, so the agent can confirm the floor is null. | Yes | No | Yes | No |
spellbook_sku_minimum_floor_setSet one seller SKU's minimum sell price and return its saved readback. Identify the exact printing, finish and condition. A floor raises computed prices up to the floor; it does not make an exact ask and does not trigger repricing. | Yes | No | Yes | No |
spellbook_sku_price_controlsRead one seller SKU's exact minimum floor and exact-price lock by printing, finish and condition. Returns saved values, timestamps, all-marketplaces lock scope and whether the seller protected the lock from agent changes. Call it before changing a floor or lock, then read it again after a write. | No | Yes | Yes | No |
spellbook_store_setup_statusRead one workspace's store setup facts and seller-activation projection: which setup facts are true, the current phase, nextAction and blockers, each channel's automation mode and meaning, and server evidence for the first verified eBay and ManaPool listings in autoListing. Use autoListing.ebay.firstVerifiedListing or autoListing.manapool.firstVerifiedListing to decide whether that channel reached the verified-first-listing step; read its verificationPending field when proof is still absent. Baseline quantity remains marketplace evidence, not physical stock. Call this for a seller's setup status or after an automation-policy change. | No | Yes | Yes | No |
spellbook_support_reportStore one minimal customer failure report. Generate a fresh ULID submissionId and reuse the exact request for retries within 24 hours. Reports are accepted only after storage. No raw diagnostics, conversations, secrets, or customer identity. Available to authenticated Free customers, including paid-access denials. A report reaches no person. | No | No | Yes | No |
spellbook_tcg_buyer_action_statusRead one exact TCGplayer buyer-support command's queue state, provider verification, evidence and missing fields. Call after inspection, reply or refund. Preserve an unknown outcome for reconciliation; an HTTP success or queued state is not delivery. | No | Yes | Yes | Yes |
spellbook_tcg_buyer_driver_statusRead a seller workspace's paired TCGplayer driver connection, command compatibility, seller binding and independent reply/refund permissions. Call before inspecting a buyer order. A successful inspection establishes portal access at its observation time. | No | Yes | Yes | Yes |
spellbook_tcg_buyer_inspectQueue an exact TCGplayer order inspection with products, total, refunds and thread summaries. Add a returned threadId to read its messages and prepare a reply. Read spellbook_tcg_buyer_action_status for the verified preview before a write. | No | No | No | Yes |
spellbook_tcg_buyer_refund_fullIssue a seller-authorized full refund for one previously unrefunded TCGplayer order. Requires a verified order inspection and independent full-refund permission. Read spellbook_tcg_buyer_action_status for matching provider refund evidence. This operation sends no separate thread reply. | Yes | No | Yes | Yes |
spellbook_tcg_buyer_replySend the seller-authorized exact text to one TCGplayer buyer thread. Requires a verified thread inspection and reply permission. Read spellbook_tcg_buyer_action_status afterward; delivery requires a verified seller message with its provider message ID. | Yes | No | Yes | Yes |
spellbook_tcg_extension_pairingRead whether this workspace has a paired TCGplayer browser extension, and get the SpellBook page where the seller pairs one. TCGplayer has no seller API, so SpellBook syncs TCGplayer listings and orders through a Chrome extension on the seller's own computer. Returns whether the account has extension access, the current session's status, when it was paired, when the extension last checked in, and its order sync state. If session is null or lastSeenAt is null, give the seller pairingPage.guideUrl to install the extension, then pairingPage.url to pair it. Call this tool again after they finish. | No | Yes | Yes | No |
spellbook_tcg_listing_exportProduce the CSV a person uploads to the TCGplayer portal, and mark those copies as listed in SpellBook. Call it only after spellbook_tcg_listing_preview and only once the person has said they will upload the file. Hand them the CSV and tell them plainly that SpellBook now believes these copies are listed, so the upload has to happen. | Yes | No | No | No |
spellbook_tcg_listing_previewShow which cards in one workspace would be listed on TCGplayer, and at what price, without changing anything. TCGplayer has no server-side publish, so the real path is a CSV a person uploads to the TCGplayer portal. Call this first and show the person the candidates and the totals, then call spellbook_tcg_listing_export only once they have agreed to upload the file. | No | Yes | Yes | No |
spellbook_workspace_createCreate the signed-in seller's first workspace when spellbook_workspaces_list comes back empty. It makes a workspace the seller owns. A signup Store trial starts only when its flag is on and free Seller access is not configured for this workspace. When the seller already has a workspace, it returns the first one and creates nothing, so a repeated call is safe. It returns workspaceId, name, role, and created. | No | No | Yes | No |
spellbook_workspace_plan_statusRead one workspace's Store plan and Seller usage status: tier, stored plan status, trialExpiresAt, sellerToolsUnlocked, and freeSellerCap's scope, observedAt, sellerSource, limitKind, nominalUnitAllowance, managedListedUnitCount, selectedListingKeyCount, count exactness, usageLimitations, and compatibility fields. selectedListingKeyCount counts explicit selected TCGplayer and ManaPool policy memberships; it is not a total of current marketplace keys. Legacy all-mode, eBay, and CardTrader key totals are not enumerated. The 10,000-unit figure is a soft reference. A free owner must explicitly choose one workspace with spellbook_free_seller_workspace_claim before free Seller access begins. Read this status again after the claim. | No | Yes | Yes | No |
spellbook_workspaces_listList the authenticated customer's existing workspaces with workspaceId, name, membership role and status. Owner, admin and member roles are preserved. Discover a workspace before selecting it; this read creates no workspace or trial. When the list is empty, spellbook_workspace_create makes the first one. | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Sep 24, 2026
- Updated
- Sep 24, 2026
- Repository
- Not given
- Categories (suggested)
- E-commerceSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared