Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Recently observed → Unavailable
Live → Recently observed
Authorization not required, issuer https://auth.spellbook-finance.com
Authorization not required, issuer https://auth.spellbook-finance.com
Added "spellbook_pricing_amendment_create", "spellbook_pricing_amendment_delete", "spellbook_pricing_amendment_get" and 14 more; removed "spellbook_experiment_cross_channel", "spellbook_experiment_eligibility" and "spellbook_pricing_experiments"; changed the definition of "spellbook_japan_source_scan", "spellbook_pokemon_arbitrage_spreads", "spellbook_pricing_decision_explain" and 1 more (86 tools before, 100 now)
⟨17 unchanged words⟩ (japanese-promos), or exact-language Pokemon cards (pokemon, pokemon-en, pokemon-ja). Returns every tracked target's actual observation time ⟨50 unchanged words⟩
⟨13 unchanged words⟩ sold in Japan, Japanese-language Magic promos, or one exact-language Pokemoncards.cohort. Use pokemon-en or pokemon-ja to keep source observations isolated. Defaults to riftbound-jp.","enum":["riftbound-jp","japanese-promos","pokemon
Certificate recorded, valid to 2027-03-20
Authorization not required, issuer https://auth.spellbook-finance.com
Added "spellbook_sealed_portfolio_open" and "spellbook_sealed_recovered_component_record"; changed the definition of "spellbook_sealed_listing_pause", "spellbook_sealed_listing_preview", "spellbook_sealed_listing_submit" and 3 more (84 tools before, 86 now)
Remove one SpellBook-managed sealed listing from ManaPooland readorbackset itsstate.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 ⟨7 unchanged words⟩
⟨22 unchanged words⟩ ,12}$","type":"string"},"
Changed the definition of "spellbook_japan_source_scan" and "spellbook_printings_search"
⟨8 unchanged words⟩ Riftbound cards sold in Japan (riftbound-jp),orJapanese-language Magic promos (japanese-promos), or exact-language Pokemon cards (pokemon). Returns every tracked target's actual observation time ⟨50 unchanged words⟩
⟨10 unchanged words⟩ ":"English Riftbound cards sold in Japan,orJapanese-language Magicpromos.promos, or exact-language Pokemon cards. Defaults to riftbound-jp.","enum":["riftbound-jp","japanese-promos","pokemon"],"type":"string"}},"type":"object"}
Added "spellbook_sealed_intent_default_set", "spellbook_sealed_intent_defaults", "spellbook_sealed_listing_pause" and 3 more; changed the definition of "spellbook_sealed_portfolio" and "spellbook_support_report" (78 tools before, 84 now)
Readthe sealed productasellerseller'sholds:sealed boxes, packs and cases,each row carrying the product, thewith quantity,thecost,unitmarket pricepaid,the acquisition dateheldQuantity,the current marketopenIntentQuantity,
Added "spellbook_sealed_listing_preview" and "spellbook_sealed_listing_submit"; changed the definition of "spellbook_support_report" (76 tools before, 78 now)
⟨244 unchanged words⟩ spellbook_ebay_unpublish","spellbook_ebay_job_status","spellbook_manapool_sync_preview","spellbook_manapool_sync_apply","spellbook_sealed_listing_preview","spellbook_sealed_listing_submit","spellbook_tcg_listing_preview","spellbook_tcg_listing_export","spellbook_pokemon_tcg_staged_preview","spellbook_ebay_connect_link"," ⟨69 unchanged words⟩
Show what listing one sealed product on ManaPool would do, without changing anything. Returns the live offer if one exists, the proposed quantity and ask, the stock and intent revisions, and every blocker. Call it before spellbook_sealed_listing_submit and show the person the proposal. An empty blockers list is the only state in which a submit can succeed.
Unknown → Live
First tool surface recorded: 76 tools (server version 0.1.0)
https://api.spellbook-finance.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 14 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"cohortId":{"description":"Optional Pokemon cohort. Use pokemon-ja or pokemon-en to keep language evidence isolated.","enum":["pokemon","pokemon-en","pokemon-ja"],"type":"string"},"condition":{"description":"Optional condition filter.", ⟨19 unchanged words⟩ ,"1e-fo"],"type":"string"},"importChargesUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional import charges assumption in USD; omitted keeps landed cost incomplete."},"importDutyRate":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional import duty rate as a decimal; omitted keeps landed cost incomplete."},"inboundShippingUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional inbound shipping assumption in USD; omitted keeps landed cost incomplete."},"language":{"description":"Optional exact language filter.","minLengthenum":1["en","ja"],"type":"string"},"limit":{"default" ⟨15 unchanged words⟩ "minimum":1,"type":"integer"},"otherAcquisitionUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional other acquisition cost in USD; omitted keeps landed cost incomplete."},"otherSellingUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional other selling cost in USD; omitted keeps net proceeds incomplete."},"outboundShippingUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional outbound shipping assumption in USD; omitted keeps net proceeds incomplete."},"productId":{"description":"Optional exact Pokemon catalog ⟨5 unchanged words⟩ ^pokemon:tcgp:[1-9]\\d*$","type":"string"},"proxyFeeUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional proxy fee assumption in USD; omitted keeps landed cost incomplete."},"sellingFeeRate":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional selling fee rate as a decimal; omitted keeps net proceeds incomplete."},"sellingFixedFeeUsd":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"number"},{"type":"null"}],"description":"Optional selling fixed fee in USD; omitted keeps net proceeds incomplete."}},"type":"object"}
Readwhy ONE of the seller's own listings carries theoneaskselleritlisting'scarriesrecordedrightpricingnow,evidenceonfor one marketplace. Returns thelive asklastbesiderecordedtheask, market anchorand its source,the binding floor and the tier that set it, which branch of the engine won, thesafereasonpricecodeeffect,the experimentdecisionbandtimestamps andarmwhether theprintingevidencesitsisinobserved,the static multiplier target and the demand-aware target side by siderecorded,the demand ladderprojected orrelaxation sentence verbatim, and the depth premium arm and factor.missing. Call this when a seller askswhywhatapricecardwasissavedpricedorthewhatwayevidenceitsupportsisit,why two similarthencardsusediffer,theorsellerwhethercontrolsatoolssettingwhen theyare aboutwant to inspect or changeisathesetting.settingItthatneveractuallyclaimsmovedathisremoteprice.marketplaceItaskexplainsisonecurrentdecisionwithoutandarecommendsremotenothing.observation timestamp.
⟨253 unchanged words⟩ spellbook_deck_import_limitless","spellbook_pokemon_metagame_overview","spellbook_pokemon_metagame_archetype","spellbook_pokemon_metagame_card","spellbook_experiment_eligibility","spellbook_experiment_cross_channel","spellbook_box_ev_rankings","spellbook_ebay_publish","spellbook_ebay_reprice","spellbook_ebay_unpublish"," ⟨15 unchanged words⟩ spellbook_japanese_sourcing","spellbook_riftbound_japanese_comparables","spellbook_japan_source_scan","spellbook_pricing_decision_explain","spellbook_pricing_experimentsspellbook_sku_price_controls","spellbook_sku_minimum_floor_set","spellbook_sku_minimum_floor_clear","spellbook_sku_exact_price_lock_set","spellbook_sku_exact_price_lock_clear","spellbook_pricing_profiles_list","spellbook_pricing_profile_get","spellbook_pricing_profile_create","spellbook_pricing_profile_update","spellbook_pricing_profile_activate","spellbook_pricing_amendments_list","spellbook_pricing_amendment_get","spellbook_pricing_amendment_create","spellbook_pricing_amendment_update","spellbook_pricing_amendment_delete","spellbook_pricing_amendment_preview","spellbook_pricing_amendment_preview_status","spellbook_ebay_automation_set","spellbook_manapool_automation_set","spellbook_channel_pricing_profiles","spellbook_channel_pricing_profile_set ⟨55 unchanged words⟩
Create one bounded seller pricing amendment from a selector, marketplace scope, absolute multiplier and optional protected band. Returns saved readback. The server retains its adaptive default internally; this tool has no demand behavior input and does not publish or reprice.
Delete one saved pricing amendment by exact amendment id and return a deletion readback. This changes saved configuration and does not publish or trigger repricing.
Read 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.
Start 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.
Read 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.
Update 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.
List 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.
Activate 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.
Create one seller pricing profile from a seller-selected name and explicit baseline multiplier and floor, with optional dollar offset and ordinary channel overrides. Returns saved profile and pin readback. It does not activate, publish or reprice.
Read one seller pricing profile's approved multiplier, floor, dollar offset, ordinary value bands and channel overrides, then report its active state and channel pin facts. Call it before an update or activation.
Update selected seller-approved fields on one pricing profile and return saved profile and pin readback. Omitted fields stay unchanged. Null clears only a selected channel override field.
List 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.
Clear one seller SKU's exact-price lock by exact printing, finish and condition. Returns the saved controls readback, so the agent can confirm the lock is null.
Set one seller SKU's exact price lock and return its saved readback. Identify the exact printing, finish and condition. The lock scope is all marketplaces and no marketplace publish or repricing is triggered by this tool.
Clear 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.
Set 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.
Read one seller SKU's exact minimum floor and exact-price lock by Scryfall printing, finish and condition. Returns saved values, update timestamps, the all-marketplaces lock scope, missing evidence and limitations. Call it before changing a floor or lock, then read it again after a write.
Read observed cross-channel experiment results for one exact card identity and condition. The response preserves channel summaries, coverage windows, observed net revenue metrics and the server's non-recommendation marker. It reports observed outcomes and does not choose a channel or change pricing.
Read a workspace's current pricing-experiment eligibility preview: eligible counts by tier, candidate exclusions, game and channel policy, source gaps and computation time. It reports what the current evidence would admit and never enrolls a SKU, starts an experiment or recommends a policy.
Read the pricing experiments running on the seller's own active strategy profile, and what each arm has earned over a window. Each experiment carries its band id, every marketplace it runs on, its market price range, how printings are assigned to arms, and then per arm the multiplier, printings, exposure-days, copies sold, revenue, revenue per 100 exposure-days, and the exposure-days whose ask the demand lane set instead of the arm. Call this to explain why two identical cards are priced differently, to tell a seller when an answer will arrive, or to read a level test already in flight. It re…
{"destructiveHint":true,"idempotentHint":truefalse,"openWorldHint":true,"readOnlyHint":false,"title":"Remove a sealedManaPoollisting"}
Show what listingPreview one sealedproductlisting on ManaPoolwouldordo,TCGplayer withoutchanging anything.publishing. Returns thelive offerproposedifquantityoneandexistsask,theanyproposedcurrentquantityoffer,andTCGask,publisherthereadback state, stock and intent revisions, andeveryblockers.blocker.ForCallTCGplayer,itthebeforefirstspellbook_sealed_listing_submitcallandmayshowqueuetheanpersonexact seller-grid SKU read; call again after theproposal.pairedAnextensionemptyfinishes.blockersAfterlistsubmitting,iscallthepreviewonlyagain:statepublisher.stateinlivewhichconfirms an offer, and removed confirms asubmitzero-quantitycanremoval.succeed.Pass this preview's channel, ask, and revisions to spellbook_sealed_listing_submit.
⟨47 unchanged words⟩ "minimum":0,"type":"integer"},"channel":{"default":"manapool","description":"Marketplace to preview. Defaults to manapool.","enum":["manapool","tcgplayer"],"type":"string"},"fixedPriceUsd":{"description":"A fixed ask in ⟨88 unchanged words⟩ default":false,"description":"True adopts aManaPoollistingforonthistheproductselected marketplace that SpellBook did not create. Defaults to false; ⟨33 unchanged words⟩
⟨6 unchanged words⟩ readOnlyHint":true,"title":"Preview a sealedManaPoollisting"}
ListSubmit one sealed productonlisting to ManaPoolfororreal,TCGplayer at the exact quantity and asktheshownpreviewbyproposed.spellbook_sealed_listing_preview.RequiresPassspellbook_sealed_listing_previewthefirst:samepasschannelitsand product arguments, plus proposed.stockRevision, proposed.askUsd, and intentRevisionback unchangedunchanged.withManaPoolthesubmitssamedirectly.arguments.TCGplayerReturnsqueues thesavedpairedlistingbrowserintentwriter.withAitsqueuedstate.TCGWhenwriteManaPoolisconfirmspendingtheuntilofferantheexactstateseller-gridreadsreadbacklive.confirms it.
⟨47 unchanged words⟩ "minimum":0,"type":"integer"},"channel":{"default":"manapool","description":"Marketplace to submit to. Must match the preview. Defaults to manapool.","enum":["manapool","tcgplayer"],"type":"string"},"expectedAskUsd":{"description":"proposed.askUsd from the preview. Required; a different value means the market ask changed and the call is refused.","exclusiveMinimum":0,"maximum":100000,"type":"number"},"expectedIntentRevision":{"anyOf":[{"maximum":9007199254740991, ⟨83 unchanged words⟩ },"idempotencyKey":{"description":"A unique request key for thissubmitpublish attempt, such as a new UUID.Required.IfAtheretryresultwithistheuncertain,samepreviewkeycurrentreturnsstatethebefore
{"destructiveHint":true,"idempotentHint":truefalse,"openWorldHint":true,"readOnlyHint":false,"title":"List sealed producton ManaPool"}
Read a seller's sealed boxes, packs and cases, with quantity, cost basis, market price, heldQuantity, openIntentQuantity, acquisitionSource and ⟨9 unchanged words⟩ 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 ⟨6 unchanged words⟩
⟨7 unchanged words⟩ {"description":"The exact purchase entryId fromspellbook_sealed_portfolio.spellbook_sealed_portfolio, including the SEALED# prefix when present. Required.","pattern":"^(?:[A-Za-z0-9_-]{1,64}|SEALED#[A-Za-z0-9_-]{1,64})$","type":"string"},"hold": ⟨36 unchanged words⟩
⟨225 unchanged words⟩ spellbook_sealed_portfolio_record","spellbook_sealed_portfolio_hold_set","spellbook_sealed_portfolio_open_intent_clear","spellbook_sealed_portfolio_receive","spellbook_sealed_portfolio_open","spellbook_sealed_recovered_component_record","spellbook_sealed_intent_defaults","spellbook_sealed_intent_default_set","spellbook_sale_record","spellbook_agent_gap_report"," ⟨107 unchanged words⟩
Record 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.
Record 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.
Findthean exactprinting of acard printing before recording a physical copy or forming a ⟨13 unchanged words⟩ in the same query string, for example "sol ringPikachu set:c21sv2a263025/165". Pokemon searches can filter English or Japanese catalog rows. Returns each printing with itsscryfallIdproduct identity, game, language, set code, collector number, rarity and ⟨23 unchanged words⟩
⟨23 unchanged words⟩ ,"pokemon"],"type":"string"},"language":{"description":"Restrict Pokemon results to English or Japanese catalog rows. Omit when language is unknown.","enum":["en","ja"],"type":"string"},"page":{"description":"Page number of results ⟨52 unchanged words⟩
⟨222 unchanged words⟩ spellbook_inventory_location_confirm","spellbook_inventory_holdings","spellbook_sealed_portfolio","spellbook_sealed_portfolio_record","spellbook_sealed_portfolio_hold_set","spellbook_sealed_portfolio_open_intent_clear","spellbook_sealed_portfolio_receive","spellbook_sealed_intent_defaults","spellbook_sealed_intent_default_set","spellbook_sale_record","spellbook_agent_gap_report","spellbook_support_report","spellbook_store_setup_status"," ⟨7 unchanged words⟩ spellbook_inventory_incoming","spellbook_inventory_incoming_receive","spellbook_movers","spellbook_card_prices","spellbook_card_buylist","spellbook_pokemon_market_analytics","spellbook_pokemon_ath","spellbook_pokemon_arbitrage_spreads","spellbook_deck_contents","spellbook_deck_import_limitless","spellbook_pokemon_metagame_overview","spellbook_pokemon_metagame_archetype","spellbook_pokemon_metagame_card","spellbook_experiment_eligibility","spellbook_experiment_cross_channel","spellbook_box_ev_rankings","spellbook_ebay_publish","spellbook_ebay_reprice","spellbook_ebay_unpublish","spellbook_ebay_job_status","spellbook_manapool_sync_preview","spellbook_manapool_sync_apply","spellbook_sealed_listing_preview","spellbook_sealed_listing_submit","spellbook_sealed_listing_pause","spellbook_tcg_listing_preview","spellbook_tcg_listing_export","spellbook_pokemon_tcg_staged_preview","spellbook_ebay_connect_link ⟨69 unchanged words⟩
Set 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.
Read 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.
Remove one SpellBook-managed sealed listing from ManaPool and read back its state. Call spellbook_sealed_listing_preview first and pass its intentRevision unchanged. A product with no saved SpellBook intent cannot be removed by this tool.
Mark 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.
Clear 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.
Mark 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 owned status. This preserves its holding mark and opening plan.
List one sealed product on ManaPool for real, at the quantity and ask the preview proposed. Requires spellbook_sealed_listing_preview first: pass its proposed.stockRevision and intentRevision back unchanged with the same arguments. Returns the saved listing intent with its state. When ManaPool confirms the offer the state reads live.