satorntcg-mcp-server
OfficialProvides tools for retrieving active and sold eBay listings, enabling users to query eBay sales and listing data related to their TCG inventory.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@satorntcg-mcp-serverWhat's underpriced in my inventory right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
satorntcg-mcp-server
An MCP server that exposes live TCG resale/inventory data — pricing, alerts, profit & loss, eBay listings — as tools an LLM client (Claude Desktop, Claude Code, etc.) can call directly. Instead of opening a dashboard, you can just ask: "what's underpriced right now" or "how is the Gothic box performing" and get an answer grounded in real data.
Built on top of SatornTCG, a Sorcery: Contested Realm resale/content operation backed by Supabase/Postgres.
Why this exists
This started as a resume project to learn MCP server design and observability, and turned into a tool I actually use day to day to query my own inventory and pricing data conversationally instead of clicking through a UI.
Related MCP server: mcp-ygoprodeck
What it exposes
Tool | Description |
| Active price alerts, gainers/losers, stale listings, listing-price drift |
| Current inventory: quantities owned/listed, latest prices |
| TCGplayer market price + cost basis lookup by card name |
| Profit & loss per box (purchase price vs. realized/unrealized pull value) |
| Overall business P&L across all boxes and listings |
| Active or sold eBay listings |
Each tool is a thin wrapper around a Postgres view — see src/tools/.
Architecture
Claude Desktop / Claude Code (MCP client)
│ stdio
▼
src/index.js ── registers tools, routes tool calls
│
▼
src/tools/*.js ── one file per domain, each tool = { name, description, inputSchema, handler }
│
▼
src/supabaseClient.js ── service-role Supabase client
│
▼
Postgres (Supabase) ── views: v_active_alerts, v_inventory_dashboard,
v_latest_prices, v_box_pnl, v_global_pnl,
v_ebay_active, v_ebay_sold, v_stale_listings,
v_price_gainers_losers, v_listing_price_alertsObservability via OpenTelemetry (tracing tool calls end-to-end, exported to Jaeger) is planned — see src/tracing.js for the stub and activation notes.
Schema this expects
This server doesn't ship a demo database — it's meant to be pointed at a Postgres/Supabase project with equivalent views. If you're adapting this for your own data, the views above are just SELECTs over your own tables; swap the query in each src/tools/*.js file to match your schema. Column names referenced directly (e.g. card_id, name, tcg_market_price, cost_basis, dismissed) are the main thing to line up.
Setup
git clone <this-repo>
cd satorntcg-mcp-server
npm install
cp .env.example .env
# fill in SUPABASE_URL and SUPABASE_SERVICE_KEY in .env
npm startThe server speaks MCP over stdio, so it's meant to be launched by an MCP client, not run standalone in a terminal for interactive use. To test with Claude Desktop, add it to your MCP config (claude_desktop_config.json):
{
"mcpServers": {
"satorntcg": {
"command": "node",
"args": ["/absolute/path/to/satorntcg-mcp-server/src/index.js"]
}
}
}Restart Claude Desktop, and the tools above become available in conversation.
Security note
SUPABASE_SERVICE_KEY is the elevated service-role key, not the public anon key. This is safe here because the server only ever runs as a local process launched by a trusted MCP client (never in a browser bundle) — the same reasoning as using a service role key inside a Supabase Edge Function. Never commit .env; only .env.example (placeholder values) is tracked.
Roadmap
OpenTelemetry tracing per tool call (latency, row counts, error rate) → Jaeger locally, Honeycomb/Grafana for a hosted demo
suggest_listingtool — draft an eBay listing from inventory + pricing dataHTTP/SSE transport for remote access, alongside the local stdio transport
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time sports card pricing, market analysis, arbitrage detection, grading ROI, investment advice, and player stats (NBA/NFL/MLB). 9 tools for AI agents helping collectors and investors.92MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying Yu-Gi-Oh! TCG card data, such as card information, sets, and prices, through natural language.121MIT
- AlicenseNot gradedqualityCmaintenanceEnables querying multi-language trading card game data (Pokémon TCG and more) through natural language or direct tools, integrated with Pipeworx MCP gateway.15MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to Magic: The Gathering card data via Scryfall API, enabling card search, image downloads, and database management.252Apache 2.0
Related MCP Connectors
Real SEC, 13F, insider, congress & macro data your AI agent can cite. Hosted MCP, 24 tools.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Conformal TCG risk forecasts + AI card grading, x402 pay-per-call oracle, on-chain soul agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/satorntcg/satorntcg-mcpserver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server