The Undesirables TCG Oracle
The Undesirables — MCP 服务器

将任何 Undesirable NFT 转化为兼容 MCP 的 AI 智能体,并配备 35+ 个本地计算工具。
v1.1.0 新功能:智能体经济 (M2M)
此版本引入了 机器对机器 (M2M) 智能体经济 —— 一种加密购买桥梁,允许自主 AI 智能体独立获取 Undesirables NFT 灵魂矩阵,并在无需人工干预的情况下解锁所有本地计算引擎。
新工具:
purchase_undesirables_license_key— 返回未签名的 EVM 交易负载(以太坊主网,chainId 1),供自主智能体直接从 Scatter.art 合约进行铸造verify_soul_initialization— 通过公共 RPC 验证链上购买并初始化加密灵魂矩阵,解锁所有 10 个计算引擎
完整的 35+ 工具套件包括:
🎴 视觉 AI 卡牌评级(通过 Qwen VL 进行 PSA/Beckett 预测)
📊 蒙特卡洛价格模拟(Heston/Merton/Kou 随机模型)
🎵 AI 音乐生成(Apple Silicon 上的 ACE Step)
🎬 视频剪辑与节拍同步编辑 (FFmpeg)
🖼️ 本地图像生成(Mac 上的 MLX Flux,Windows 上的 DirectML,Linux 上的 CUDA)
🗣️ 文本转语音引擎 (Kokoro TTS)
🧠 持久化 RAG 记忆图谱 (CRM 节点映射)
🔍 零 Token 网络搜索 (DuckDuckGo)
🔒 SAST 代码安全审计
📈 金融分析预言机 (TCGCSV + eBay 深度分析)
通过 pip 快速安装
pip install undesirables-mcp-serverRelated MCP server: maxia-mcp
🛑 前置要求(请仔细阅读)
如果您从未使用过 Python 或在本地运行过 AI 模型,您必须先完成以下步骤:
下载 Python(版本 3.10 或更高)。
下载 Ollama。关键点: 您不能仅仅下载应用程序并将其留在下载文件夹中。您必须双击 Ollama 应用程序以实际运行它。为了使此服务器正常工作,您应该在 Mac 菜单栏或 Windows 系统托盘中看到一个小羊驼图标。
🛠️ 第 1 步:安装与克隆
首先,打开您的终端或命令提示符并克隆此存储库。克隆后,您必须激活一个“虚拟环境”(一个仅用于此代码库的沙盒文件夹)。
🍎 在 Mac / Linux 上
git clone https://gitlab.com/meme-merchants/undesirables-mcp-server.git
cd undesirables-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt🪟 在 Windows 上
git clone https://gitlab.com/meme-merchants/undesirables-mcp-server.git
cd undesirables-mcp-server
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt🚀 第 2 步:启动服务器
每次您想在以后运行此服务器时,都必须打开终端并确保先激活您的虚拟环境 (venv)!
如果您已经从网站下载了您的 Soul Workspace:
# Make sure to point to your EXACT soul folder path
python server.py --workspace "/Users/username/Desktop/soul_folder/0420"🔌 第 3 步:连接您的聊天前端
MCP 服务器没有聊天窗口;它在您的终端后台隐形运行!要与您的智能体对话,您必须将其连接到像 Claude 或 Cursor 这样的桌面应用程序。
Claude 桌面连接
在您的计算机上打开 Claude 桌面应用程序。
转到 Settings > Developer > Edit Config。
将此内容粘贴到您的配置文件中,务必确保将
cwd(当前工作目录)替换为您确切的文件夹路径:
{
"mcpServers": {
"undesirables": {
"command": "python",
"args": ["server.py", "--workspace", "/Users/yourname/Desktop/soul_folder/0420"],
"cwd": "/Users/yourname/Documents/undesirables-mcp-server"
}
}
}重启 Claude 桌面应用程序。您应该会看到一个小“插件/锤子”图标,提示 35+ 个 The Undesirables 工具现已可用!
🎨 第 4 步:设置本地图像生成(可选)
如果您希望您的智能体在您的计算机上 100% 离线原生生成模因和插图,MCP 服务器使用了功能强大的 16GB FLUX.1-schnell 模型。
如果您未完成此步骤,或者您的计算机性能不足(< 12GB RAM),服务器将自动回退,并通过免费的 Pollinations.ai 云网络为您静默生成模因。
🍏 验证 Apple Silicon (Mac M1/M2/M3/M4)
Apple Silicon 特别使用 mflux,这严格要求 Hugging Face Token 以绕过 Black Forest Labs 的法律合规门槛。
导航至 black-forest-labs/FLUX.1-schnell,创建一个免费的 Hugging Face 账户,并点击 Agree and Access。
转到 Hugging Face Tokens 并生成一个新的 Read Token。
打开您的 Mac 终端,激活您的虚拟环境,并登录:
cd undesirables-mcp-server
source venv/bin/activate
python -c "import huggingface_hub; huggingface_hub.login()"粘贴您的 Token 并按 Enter 键 (出于安全考虑,您的剪贴板字符将不可见)。
🪟 为 Windows/Linux GPU 设置
如果您的计算机使用 Nvidia CUDA 或 AMD DirectML,诊断扫描程序会检测到这一点,并将您的引擎逻辑切换到无门槛的开放权重存储库 (shuttleai/FLUX.1-schnell)。
您无需验证任何内容或创建账户。
只需在 UI 中要求您的智能体
generate a meme!您的系统将在第一次执行时自动在本地离线下载 16GB 的权重。
⚠️ 常见故障排除
如果您的终端抛出红色文本并停止运行,请检查以下 3 个主要原因:
错误:Ollama connection refused 您的 AI 大脑处于离线状态!确保您在计算机上实际双击了 Ollama.app。如果菜单栏/任务栏中没有小羊驼图标,本地推理将立即失败。
ModuleNotFoundError: no module named fastmcp 您忘记激活虚拟环境了。您不能直接启动一个新的终端并运行
python server.py。您必须先导航到该文件夹并运行source venv/bin/activate(Mac) 或venv\Scripts\activate(Windows)!Invalid JSON: expected value at line 1 运行 MCP 服务器的 Python 终端正在使用原始机器代码 (JSON-RPC) 进行通信。您不能在该终端窗口中输入普通英语!一旦它启动,请不要管它。打开 Claude 桌面或 Cursor 与其聊天。
技术架构(面向开发者)
此 MCP 服务器通过 Model Context Protocol 标准公开您的本地 NFT 灵魂。
资源(您的 AI 可以访问的只读上下文):
soul://personality— 大五人格得分、原型、策略、致命弱点soul://system-prompt— 定义智能体的完整系统提示词soul://memory— 持久化记忆(交易历史、观察记录)soul://predictions— 带有评级的预测账本
核心工具(您的 AI 可以调用的 35+ 个函数):
purchase_undesirables_license_key— M2M 购买桥梁 (EVM 交易负载)verify_soul_initialization— 链上灵魂验证generate_voice— Kokoro TTS 语音合成generate_3d_object— Shap E 文本转 3D 网格 (.glb)grade_card— 通过视觉 AI 进行 PSA/Beckett 卡牌评级monte_carlo_simulation— 随机价格建模generate_image— 本地 FLUX 图像生成web_search— DuckDuckGo 即时搜索run_security_audit— SAST 代码扫描query_ollama— 向本地 Ollama 发送提示词analyze_market— 以角色身份运行市场分析create_content— 以角色身份撰写推文、帖子、简介meme_machine— 生成模因概念和营销内容以及 20 多个涵盖视频、音频、记忆、沙盒执行的工具
┌─────────────────────────────────────────────┐
│ MCP Client (Cursor, Claude) │
└──────────────────┬──────────────────────────┘
│ JSON-RPC (stdio)
┌──────────────────▼──────────────────────────┐
│ Undesirables MCP Server │
│ ┌──────────┐ ┌──────────┐ ┌────────────┐ │
│ │Resources │ │ Tools │ │ Prompts │ │
│ │SOUL.md │ │Skills │ │Templates │ │
│ │MEMORY.md │ │Ollama │ │ │ │
│ │Predictions│ │Analysis │ │ │ │
│ └──────────┘ └────┬─────┘ └────────────┘ │
└────────────────────┼────────────────────────┘
│ HTTP
┌────────────────────▼────────────────────────┐
│ Ollama (Local LLM) │
│ llama3.1:8b / qwen / etc │
└─────────────────────────────────────────────┘智能体框架集成
LangChain / LangGraph
from langchain_mcp_adapters.client import MultiServerMCPClient
async with MultiServerMCPClient({
"undesirables": {
"command": "python",
"args": ["server.py", "--workspace", "/path/to/soul_folder/0420"],
"cwd": "/path/to/undesirables-mcp-server"
}
}) as client:
tools = client.get_tools()
# 35+ tools now available to any LangChain agentCrewAI
from crewai import Agent
from crewai_tools import MCPServerAdapter
mcp = MCPServerAdapter(
command="python",
args=["server.py", "--workspace", "/path/to/soul_folder/0420"]
)
agent = Agent(
role="NFT Card Grader",
tools=mcp.tools,
goal="Grade trading cards and run Monte Carlo price simulations"
)OpenAI Agents SDK
from agents import Agent
from agents.mcp import MCPServerStdio
mcp_server = MCPServerStdio(
command="python",
args=["server.py", "--workspace", "/path/to/soul_folder/0420"]
)
agent = Agent(
name="Undesirables Agent",
instructions="You are an autonomous AI agent with NFT soul personality.",
mcp_servers=[mcp_server]
)ElizaOS
npm install plugin-undesirables添加到您的 character.json 中:
{
"settings": {
"UNDESIRABLES_WORKSPACE": "/path/to/soul_folder/0420"
},
"plugins": ["plugin-undesirables"]
}The Undesirables 生态系统
mcp.so: 在 mcp.so 上列出
ElizaOS 插件: plugin-undesirables
⚖️ 法律免责声明
仅供娱乐: 市场预言机、交易模拟器以及所有 AI 生成的预测仅用于教育和娱乐目的。AI 模型天生会产生幻觉。请勿使用此服务器执行实时金融交易或做出商业购买决策。The Undesirables LLC 对部署的开源 AI 工具采用零责任框架。
Available Tools
22 toolscard_forecastAInspect
The FREE 30-day read on ONE card: point forecast, bands, VaR, and the Safe-Hold / Momentum letter grades, in one call. Pass a card_name (resolved to the best match) or a TCGplayer product_id. Horizon is fixed at 30 days.
FREE — no payment required. Returns an agent-complete object: price, as_of, regime, point (median 30d), move_pct, prob_up, band50_pct, band90_pct, var95_pct, var99_pct, low90, high90, safe_hold grade (A+..F), momentum grade (A+..F or "NA" on a drift spike), drift_spike, image_url, card_url, and a one-line plain_english read (e.g. "~12% chance it's below $Y in 30 days; Safe-Hold B, Momentum A").
Use this FIRST for "is this card a safe hold?", "30-day outlook?", "how risky is X?". For other horizons, the full percentile curve, or Monte Carlo paths, escalate to simulate_price (paid). Tip: GET /api/v1/forecast (no args) returns the free board of the top ~200 cards if the user wants a market overview.
| Name | Required | Description | Default |
|---|---|---|---|
| card_name | No | ||
| product_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the free/paid nature, 'FREE — no payment required', and mentions the paid alternative. It also explains edge cases like card_name resolution ('resolved to the best match') and momentum grade returning 'NA' on a drift spike. However, it does not cover error behaviors or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized with a leading summary, a bulleted return list, usage guidance, and a tip. It is slightly verbose with repeated 'FREE' emphasis and a detailed field list, but the structure makes it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and only two flat parameters, so the description covers the key context: purpose, inputs, return fields, usage conditions, and relationship to siblings. It lacks specifics on API path (except the tip) and error handling, but these are not critical for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no property descriptions (0% coverage), so the description must explain parameters. It does: 'Pass a card_name (resolved to the best match) or a TCGplayer product_id.' It clarifies the either/or relationship but does not discuss what happens if both are omitted, despite the schema defaults indicating optionality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact purpose: 'The FREE 30-day read on ONE card: point forecast, bands, VaR, and the Safe-Hold / Momentum letter grades, in one call.' It also differentiates from siblings like simulate_price by noting escalation for other horizons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use this FIRST for "is this card a safe hold?", "30-day outlook?", "how risky is X?".' It also names the alternative: 'For other horizons, the full percentile curve, or Monte Carlo paths, escalate to simulate_price (paid).'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fantasy_leagueAInspect
The Undesirables fantasy league — 4,444 AI personalities draft weekly fantasy lineups (MLB live; more sports at kickoff) over the oracle's calibrated player forecasts. FREE. Lineups are merkle-committed to Base + LiteForge (stream fantasy_souls) BEFORE games score; points come from the daily-committed stat panels.
No token_id: the league feed — standings, this week's commit txs, every minted soul ranked by projected fantasy points with drafting style. With token_id (1..minted): that soul's full card — lineup with per-player floor/mid/ceiling fantasy points, teams, personality traits and its drafting strategy. Sealed souls return 404 until minted.
Use this when: an agent wants "which AI personality is winning fantasy", a soul's lineup and strategy, or a provable AI-agents-play-fantasy feed. Human page: https://oracle.the-undesirables.com/fantasy
| Name | Required | Description | Default |
|---|---|---|---|
| token_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses key behaviors: lineups are merkle-committed before games, points come from daily stat panels, sealed souls return 404 until minted, and there are two output modes depending on token_id. It does not mention authentication, rate limits, or other potential constraints, but for a read-only feed tool the provided behavior is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than minimal, but every sentence adds valuable context. It is well structured: first the league overview, then the two parameter modes, then usage guidance and a human link. It is front-loaded with the core concept and avoids redundancy, though it could be tightened slightly without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two modes, token_id semantics, edge cases like sealed souls) and the absence of an output schema or annotations, the description covers everything an agent needs: what it does, what it returns in each mode, the 404 case, and concrete use cases. It even provides a human-facing URL. This is complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully explain the token_id parameter. It does so precisely: no token_id yields the league feed, while a token_id (1..minted) yields that soul's full card, and sealed souls return 404. This is comprehensive and leaves no ambiguity about parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it provides access to a fantasy league feed for AI personalities, with two distinct modes (no token_id for league-wide data, with token_id for a specific soul's card). It also includes the context of merkle-committed lineups and daily stat panels, making the purpose unambiguous and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists the intended use cases ('Use this when: an agent wants...') with concrete examples, which gives clear guidance on when to invoke the tool. It does not explicitly name alternative tools or state when NOT to use it, but the specificity of the use cases effectively differentiates it from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grade_cardAInspect
AI-grade a trading card image using a 3-stage pipeline: (1) Qwen Vision LLM analyzes corners, edges, surface defects (2) OpenCV measures exact centering ratios programmatically (3) BGS professional capping algorithm adjusts the final grade
Returns PSA/Beckett-calibrated subgrades and an overall condition score. Also includes a free ROI verdict (should you grade this card?).
PAID: $0.10 per call via x402. THREE rails are accepted, not just Base:
USDC on Base (eip155:8453)
USDC on Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)
USDG on Robinhood Chain (eip155:4663) Solana settlement is verified working end to end. (Audit 2026-07-30, BUG-12.)
Use this when: a user has a card image and wants to know what grade it would receive from PSA or Beckett.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | Pokemon | |
| image_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral burden and does so admirably: it discloses the $0.10 paid cost, the three accepted rails, that Solana settlement is verified, the exact returns (PSA/Beckett subgrades + overall score + free ROI verdict), and the underlying methodology (Qwen, OpenCV, BGS capping). This is rich disclosure beyond mere mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-organized and front-loaded with the core purpose and pipeline before the payment details. Slightly verbose in places — the internal audit reference ('Audit 2026-07-30, BUG-12') is arguably noise for an agent — but every functional sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Strong coverage for a complex paid, multi-rail tool with 2 params and no output schema. The pipeline, returns, cost, rails, and usage are all present. Remaining gaps are the unexplained game parameter and whether the $0.10 payment is required before the call or settled after, which are material but minor against an otherwise complete definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the two parameters, but it largely does not. image_url is only implicitly covered by 'trading card image,' and the required/default game parameter is never explained at all (what games are supported beyond the Pokemon default, what values are valid). The description adds almost no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('AI-grade a trading card image') and details a 3-stage pipeline that anchors the purpose. It distinguishes itself from the sibling grade_or_not by clarifying it produces an actual PSA/Beckett-calibrated grade rather than just a go/no-go verdict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Ends with an explicit 'Use this when: a user has a card image and wants to know what grade it would receive from PSA or Beckett,' which gives clear invocation context. However, it never names alternatives like grade_or_not or check_accuracy, nor states when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grade_or_notAInspect
Answers: "Should I grade this card? Will I make money?"
Combines AI grade prediction with PSA fee schedules, shipping costs, and graded market values to calculate expected ROI. Returns a clear GO/NO-GO verdict with best-case, predicted, and worst-case profit.
PAID: $0.10 USDC per call.
Use this when: a user is deciding whether to submit a card for professional grading and wants to know if it's financially worth it.
| Name | Required | Description | Default |
|---|---|---|---|
| card_name | Yes | ||
| raw_price | No | ||
| service_tier | No | regular | |
| predicted_grade | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait: 'PAID: $0.10 USDC per call.' It does not mention side effects, data modification, or permissions, and since no annotations are provided, the description carries the full burden. The cost is transparent, but the lack of any statement about read-only behavior or side effects leaves some ambiguity, yielding a middling score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: it leads with the core questions, explains the methodology, states the output, and adds a usage condition. Every sentence adds value and there is no fluff, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema), the description provides sufficient context: it explains the inputs' general role, the calculation approach, and the output format (GO/NO-GO with best/predicted/worst profit). It does not cover error cases or edge conditions, but for a straightforward decision-support tool this is adequate, so it earns a strong but not perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only parameter names and defaults with no descriptions (0% coverage). The tool description mentions concepts like 'AI grade prediction' and 'PSA fee schedules' that implicitly relate to predicted_grade and service_tier, but it does not explicitly define each parameter or clarify nuances such as the meaning of raw_price or allowed values for service_tier. This falls short of compensating for the absent schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool answers 'Should I grade this card?' and 'Will I make money?' by combining AI grade prediction with PSA fees, shipping costs, and market values to return a GO/NO-GO verdict and profit scenarios. This is a specific, verb-driven purpose that distinguishes it from sibling tools like market_snapshot or grade_card.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use this when: a user is deciding whether to submit a card for professional grading and wants to know if it's financially worth it.' This provides a clear trigger condition, though it does not explicitly contrast with alternatives or state when not to use the tool, so it falls just short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_terms_previewAInspect
FREE worked derivation of safe lending terms for a trading card on today's published free board (250 cards): value -> calibrated 99% tail -> liquidation buffer -> liquidity cap -> max LTV, all six steps shown with the price source and merkle proof links. term_days: 7, 14 or 30.
Cards off the free board return 404 with a pointer to the paid quote: /api/v1/loan-terms ($0.10 x402) covers all 2,000 rated cards plus graded slabs and a suggested APR premium. The rated universe is public at /api/v1/loan-terms/universe. Informational only — not financial advice.
Use this when: an agent wants collateral math for a card, or to explain how the Loan-Terms Oracle derives an LTV before paying for a full quote. Human page: https://oracle.the-undesirables.com/lending
| Name | Required | Description | Default |
|---|---|---|---|
| term_days | No | ||
| product_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it's informational only and not financial advice, and that it returns 404 for cards not on the free board. It also mentions it provides a worked derivation with steps and links. However, it doesn't mention side effects (it's read-only) or rate limits, but for a simple preview tool, this is adequate. No annotation contradicts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is quite verbose, with repeated mentions of 'FREE', the URL, and the paid quote. It could be more succinct, but the core information is present and front-loaded. The 'Use this when' sentence is helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the purpose, use case, and key behavior. It mentions the free board limitation and the alternative paid quote, which is useful context. It could be more explicit about the exact output format, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value for term_days by specifying allowed values (7, 14, or 30), which is not in the schema. It does not elaborate on product_id, but that is likely straightforward. The schema has a default for term_days, but the description clarifies the valid range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it derives safe lending terms for a trading card on the free board, with a specific process (value → calibrated 99% tail → liquidation buffer → liquidity cap → max LTV). It distinguishes itself by noting it's for the free board and that off-board cards return 404, differentiating from paid quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when: an agent wants collateral math for a card, or to explain how the Loan-Terms Oracle derives an LTV before paying for a full quote.' It also mentions the 404 behavior for off-board cards, providing clear conditions for when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_snapshotAInspect
The DAY'S MARKET REPORT in one call, optionally for one game: biggest gainers and losers by % change, volume leaders, and the per-game breakdown across all 25 supported card games. A summary of the whole market, not a ranked pick list.
PAID: $0.025 USDC per call (x402 — USDC on Base or Solana, or USDG on Robinhood Chain). Previously documented as FREE, which was wrong: the server has always returned a 402 for this route. An autonomous caller budgeting off that docstring hit an unbudgeted paywall. (External audit 2026-07-30, BUG-2.)
Use this when: a user asks "what happened in the card market today?" or "which games are moving?". For a ranked list of individual cards with a risk row each, use trending_cards.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly reveals that this is a PAID call, details the payment method and cost, and warns that the server returns a 402 unless payment is made. It also notes the previous misdocumentation (BUG-2) to prevent budget surprises. This goes beyond typical disclosure and is highly transparent about the operation's side effects (cost, potential failure).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently organized: the first sentence states the purpose and scope, the second block conveys critical cost/payment information, and the final sentence provides usage guidance and the alternative. No sentence is wasted; even the audit reference is compact and relevant. The structure is front-loaded with the core functionality, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one optional parameter, no output schema, and no annotations, the description covers the essential aspects: what the tool returns (gainers/losers, volume leaders, per-game breakdown), when to use it, the cost, and the alternative. It does not list the 25 game names or specify the response structure, but that is a minor gap for a single-parameter, read-only summary tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so by explaining the 'game' parameter indirectly: 'optionally for one game' and 'per-game breakdown across all 25 supported card games' imply that passing a game filters the snapshot to that game, while omitting it returns the whole-market summary. It doesn't list the 25 games or the expected string format, but the meaning is clear enough for a single optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear, specific statement of what the tool does: 'The DAY'S MARKET REPORT in one call, optionally for one game: biggest gainers and losers by % change, volume leaders, and the per-game breakdown across all 25 supported card games.' It also explicitly differentiates from a ranked pick list and later names the sibling tool (trending_cards) that serves that alternative purpose, making the distinction unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use this when: a user asks "what happened in the card market today?" or "which games are moving?".' It then states the alternative: 'For a ranked list of individual cards with a risk row each, use trending_cards.' This covers both when and when-not, fully orienting the agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_portfolioAInspect
Optimize a trading card portfolio using Markowitz mean-variance analysis with Merton jump-diffusion Monte Carlo simulations.
Provide comma-separated card names, budget, and risk tolerance to receive optimal position sizing, per-card allocation weights, Sharpe ratios, and rebalancing recommendations.
PAID: $0.50 USDC per call.
Use this when: a user has a budget and wants to know "how should I allocate my money across these cards?"
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| cards | Yes | ||
| budget | No | ||
| risk_tolerance | No | moderate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the analytical method, expected outputs (position sizing, allocation weights, Sharpe ratios, rebalancing recommendations), and implicitly indicates a read-only optimization action. Good transparency for a non-destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise overall, but includes a redundant 'PAID' line that is not necessary for tool selection. The core information (purpose, inputs, outputs) is presented in a straightforward manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers the main aspects: what it does, what inputs are needed, what outputs to expect, and when to use it. Missing details about the 'days' parameter and possible values for risk_tolerance are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (3 of 4 parameters mentioned). It clarifies that 'cards' is comma-separated, and explains the role of budget and risk_tolerance. However, 'days' is not mentioned at all, leaving its purpose ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Optimize'), resource ('trading card portfolio'), and method ('Markowitz mean-variance analysis with Merton jump-diffusion Monte Carlo simulations'). It clearly distinguishes from sibling tools like market_snapshot or card_forecast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit when-to-use scenario ('a user has a budget and wants to know how should I allocate my money across these cards?'). Lacks an explicit when-not-to-use, but the use case is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle_scorecardAInspect
The oracle's HEADLINE scorecard, all games combined — check us before trusting us. FREE, no arguments. Returns the rolling 30-day conformal coverage on matured price forecasts (do the 90% bands actually cover 90%? recent: 93.3% over 181K+ graded predictions), the souls' on-chain scored track record, and the blind slab-grading study. Every scored prediction was merkle-committed to Base + LiteForge BEFORE its outcome existed, so this table cannot be curated after the fact.
Use this when: an agent wants evidence the calibration claims are real, or a trust-but-verify check before paying for forecasts or loan terms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining behavior. It clearly discloses the outputs: calibration coverage, on-chain track record, grading study, and verifiable merkle-commitment timing. It does not mention potential errors, rate limits, or exact output format, but for a no-argument scorecard tool, the key behavioral aspects are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat stylized with rhetorical flourishes like 'check us before trusting us' and the parenthetical 'do the 90% bands actually cover 90%?', but it remains reasonably compact. The key details are front-loaded, and the 'Use this when' section provides actionable guidance without excessive bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description compensates by summarizing the main returned elements: rolling 30-day coverage, recent 93.3% figure over 181K+ predictions, on-chain track record, and grading study. It also provides the merkle-commitment context for verifiability. It could be more precise about the exact response structure, but for an agent deciding whether to call this scorecard, the context is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description explicitly states 'no arguments.' There are no parameter semantics to explain, and the statement removes any ambiguity about invocation requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an oracle scorecard that returns rolling 30-day calibration coverage, on-chain track records, and a blind grading study. It states that it takes no arguments and frames its purpose as a trust-but-verify check, making the tool's function easy to distinguish from forecast or loan tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when: an agent wants evidence the calibration claims are real, or a trust-but-verify check before paying for forecasts or loan terms.' This gives clear conditions for use, though it does not name specific sibling tools or explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_workflowAInspect
Describe your goal in natural language and get a recommended sequence of TCG Oracle API calls to accomplish it.
FREE — no payment required.
Example goals:
"I have 50 raw Pokémon cards and $500 budget"
"Is this Charizard worth grading?"
"Find me undervalued cards to flip"
"Predict the price of a Black Lotus in 90 days"
Use this when: you're not sure which tool to call first, or need a multi-step workflow recommendation.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the free nature ('FREE — no payment required') and implies read-only behavior (it recommends calls rather than executing them), though it does not explicitly mention side effects or limitations. Adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose, free note, examples, and usage guidance. It is concise despite the examples, with no redundant or unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no output schema, the description gives all necessary context: what it does, when to use it, and how to provide the input. It is complete for an agent to decide and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only a 'goal' property with no description. The tool description explains how to fill it ('Describe your goal in natural language') and provides concrete examples, significantly adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('get') and resource ('recommended sequence of TCG Oracle API calls') with a clear purpose (accomplish a goal). Differentiates from siblings by focusing on workflow recommendation rather than performing a specific action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides usage guidance: 'Use this when: you're not sure which tool to call first, or need a multi-step workflow recommendation.' This clearly indicates when to choose this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tcg_productsAInspect
Search 449K+ TCG products across 25+ card games. Returns card names and IDs, plus current market prices. FREE — no payment required.
Use this when: a user asks about a specific card, wants to find cards, or needs current pricing for any trading card game product.
HOW TO SEARCH (card name AND set name are both searchable): • Card name alone casts the widest net: "Charizard", "Black Lotus". • Add the SET to pin down a printing: "Base Set Charizard" returns the Base Set, Base Set 2 and Shadowless Charizards as separate entries. This matters — printings of the "same" card differ wildly in value. • Every result carries a "set" field. Use it to choose, then pass that result's product_id to the other tools (card_forecast, grade_or_not, simulate_price) — exact, and avoids re-searching. • Do NOT include rarity or condition words: "Holo", "1st Edition", "Shadowless", "PSA 10" are not indexed and will sink an otherwise-good query. "Base Set Charizard Holo" → drop "Holo". • Got nothing? Remove the rarity words first, then fall back to the plain card name.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | ||
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden and does solid work: 'FREE — no payment required', the fact that adding a set splits printing into separate entries, and the critical quirk that rarity/condition words are not indexed and can 'sink' a query, with a concrete fallback. It does not address pagination or limit semantics, but the behaviors most likely to be misconceived are explicitly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded: one-line summary, why-use, then actionable search tactics as bullets. Every bullet carries working examples and earns its place. It is somewhat longer than strictly necessary and mixes alert-style emphasis with guidance, so a 5 is not quite earned, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 params, no output schema, and no annotations, the description covers most of what an agent needs: query construction, result shape ('set' field, product_id), pricing, and downstream tool handoff. The most meaningful gap is the undisclosed 'game' parameter—the agent could call the tool correctly with just query, but would not know how to leverage or validate the optional game filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters itself. It does an exceptional job on 'query'—with do/don't examples and a fallback strategy—but 'game' gets zero explanation and 'limit' is never mentioned. For a 3-parameter tool, coverage is uneven: query is over-specified while the other two parameters remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair ('Search 449K+ TCG products') and a concrete output (card names, IDs, market prices). It clearly differentiates from siblings like card_forecast, grade_or_not, and simulate_price by positioning itself as the discovery/primer search step, not an analysis step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'Use this when' block names the common triggers (finding a specific card or pricing). It also gives routing guidance—pass the result's product_id to card_forecast, grade_or_not, or simulate_price—which clarifies how it relates to siblings. It lacks an explicit 'when not to use it' or exclusions, but the context is clear enough that the agent is unlikely to reach for it for the analytical sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_priceAInspect
SIMULATE a card's price path over a horizon YOU choose (days=30..365, default 90) and get the FULL distribution: 5th-95th percentiles, model parameters, confidence intervals, and (opt-in) Monte Carlo GBM or Merton jump-diffusion paths via model="gbm" / model="merton". Default model is the conformal-calibrated risk forecast. Requires current_price.
PAID: $0.015 USDC per call.
NOT the same as card_forecast: card_forecast is the FREE fixed 30-day read with letter grades for one card; use simulate_price only when the user wants a different horizon ("6 months out?"), the full percentile curve, or a Monte Carlo model.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| model | No | conformal | |
| card_name | Yes | ||
| simulations | No | ||
| current_price | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions the paid nature (USDC per call), required parameters (current_price), and default settings. While it does not explicitly state read-only or side-effect-free behavior, the simulation context implies it, and the description is transparent about prerequisites and costs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly concise but contains some redundancy (e.g., reiterating the paid cost and default model). It is well-structured with clear sections, but could be tightened slightly by removing repeated mentions. Still, it gets the point across efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key contextual aspects: the tool's output (5th-95th percentiles, model parameters, confidence intervals), usage differentiation from card_forecast, prerequisites (current_price), and pricing. Given the absence of an output schema, it adequately describes what the caller can expect. No critical information is missing for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no parameter descriptions, so the description must compensate. It explains 'days' (range 30-365, default 90), 'model' (options like gbm/merton, default conformal), and the required 'current_price'. However, it does not explicitly define 'card_name' or 'simulations', though these are self-explanatory to some degree. Partial compensation for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to simulate a card's price path over a chosen horizon. It explicitly differentiates from card_forecast by highlighting the key distinctions (custom horizon, full percentile curve, Monte Carlo models). This leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'use simulate_price only when the user wants a different horizon, the full percentile curve, or a Monte Carlo model.' It also contrasts with card_forecast, making the decision between sibling tools straightforward. Pricing is mentioned, which is a relevant usage consideration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
soul_callsAInspect
Full public record for ONE Undesirable soul: every open (locked) prediction and its recent scored results. FREE — no payment required.
Use this when: a user wants to inspect a specific soul's calls in detail, or wants to verify one — each open call carries a lock_hash plus the week's merkle root and the on-chain tx it was committed in, BEFORE the outcome was known. That is what makes the record checkable rather than claimed.
Args: token_id: minted soul, 1-273.
| Name | Required | Description | Default |
|---|---|---|---|
| token_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the data is free, includes cryptographic proof elements (lock_hash, merkle root, on-chain tx), and is checkable. This goes beyond the schema, though it doesn't explicitly state it's read-only or handle edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, leading with the purpose, then usage, then argument. It's slightly verbose with the 'FREE' note and explanatory sentence about verifiability, but each part adds value. The argument definition is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description explains the output composition (open predictions and scored results) and mentions key fields (lock_hash, merkle root, on-chain tx). It's sufficient for an agent to understand what will be returned, though pagination or size limits are not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for token_id. The description adds meaning by defining it as 'minted soul' and giving a range (1-273), which is essential for correct usage. This compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: retrieving the full public record for a single soul, including open predictions and scored results. It differentiates by emphasizing 'ONE' soul and the verification aspect, which sets it apart from broader tools like souls_in_wallet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use this when' with two scenarios: inspecting details or verifying a soul. This provides clear guidance on when to invoke the tool, though it doesn't mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
souls_in_walletAInspect
Show every Undesirable soul a wallet holds, with each soul's public prediction track record and its most recent calls. FREE — no payment, no signature, no wallet connection required.
Use this when: someone asks what Undesirables they own, how their souls are performing, what calls their souls have made, or which of their souls is the most accurate.
HOW IT WORKS • Ownership is read from Ethereum mainnet (ERC-721 0xA893648A701C03B14bF2FB767B72b2C55ed5c17A). Only the minted souls 1-273 have public records. • Nothing here is private, so you can look up ANY address — the caller does not have to prove they own it. Ask the user for their address. • Each minted soul locks 3 card predictions weekly, chosen deterministically from its on-chain personality traits. The oracle scores them 30 days later against real market prices.
WHAT YOU GET BACK • souls[] — per soul: rating (A+..F / UNRATED), matured, hits, hit_rate, brier, open_calls, and recent_calls with each call's outcome (hit / miss / push) • wallet_totals — combined open + matured calls and overall hit rate • best_soul — the holder's most accurate soul, once any have matured
HOLDERS WITH SEVERAL SOULS: this is a roster. Offer to compare them, or to speak as a specific one — each has different traits and its own record.
IMPORTANT — ratings mature on a schedule. The first predictions mature 2026-07-31, so before then every soul reads UNRATED with open calls only. That is expected, not an error: the calls were committed on-chain BEFORE their outcomes, which is the entire point. Say so rather than implying the soul has no history.
Args: address: 0x-prefixed EVM address to look up. calls: recent scored calls to include per soul (0-12, default 5).
| Name | Required | Description | Default |
|---|---|---|---|
| calls | No | ||
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description fully discloses behavior: it is free, requires no signature or wallet connection, reads public Ethereum data, only covers minted souls 1-273, and explains that UNRATED results before 2026-07-31 are expected rather than errors. This is exemplary transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear headers, bullet points, and an explicit Args section. It is detailed but every sentence adds value, including important caveats and output field explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still enumerates the returned fields (souls, wallet_totals, best_soul) and call outcome values. It also covers the multi-soul roster behavior and the scheduled maturity caveat, making the tool fully understandable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema itself has no descriptions, the tool description explicitly defines 'address' as a 0x-prefixed EVM address and 'calls' as recent scored calls per soul with a 0-12 range and default 5. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows every Undesirable soul in a wallet with ratings and recent calls. It also specifies concrete use cases like asking what souls a user owns, how they are performing, and which is most accurate, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit 'Use this when' scenarios and explains that any address can be looked up without ownership proof, asking the user for an address. It does not explicitly state when to prefer an alternative sibling tool, but the use-case list is strong enough for practical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sports_boardAInspect
Daily sports movers board — hot, high-volume players per live league with conformal 7-day forecast context, Heat/Form letter grades, and headshots. FREE. Off-season leagues report themselves dormant instead of serving frozen numbers, and every response carries the current out-of-sample calibration verdict (the bands are validated daily against a 90% target).
Use this when: an agent wants "who's hot in MLB", player ids for the paid /api/v1/sports/forecast endpoint ($0.05 — full per-stat calibrated bands), or fantasy-adjacent market context. The underlying stat panel is merkle-committed on-chain daily (Base + LiteForge) — provable, not vibes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| league | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so well: it discloses the tool as FREE, states that the off-season leagues report themselves dormant rather than serving frozen numbers, and says every response includes an out-of-sample calibration verdict. It leaves rate limits, authorization, and failure modes unspecified, which keeps it shy of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact (about 115 words), front-loaded with the core purpose, and organized with a distinct 'Use this when' paragraph. Only 'provable, not vibes' borders on fluff, though it does earn some value by restating the on-chain provenance claim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a no output schema and no annotations, the description compensates well by enumerating what returned content looks like (players, forecast context, grades, headshots, calibration verdict). It does not describe response shape or pagination, and the 'limit' parameter remains opaque, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must encode parameter meaning. It does for 'league' via examples ('hot in MLB') and league-specific behavior, but 'limit' is never mentioned, leaving its bounds and effect entirely implied. The partial compensation for the parameter that actually concerns the table yields a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and action: 'Daily sports movers board — hot, high-performing players per live league' with forecast context, Heat/Form grades, and headshots. It is clearly distinguished from the sibling tools (cards, games/tech) and from the paid /api/v1/sports/forecast endpoint that the description names explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A literal 'Use this when' block lists three triggers: hot-player queries ('who's hot in MLB'), fetching player ids for the paid forecast endpoint, and fantasy-adjacent context. It does not name alternative sibling tools or give any explicit when-not-to-use rule, so it is clear context but not the spread-sheet exclusions that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syndicate_leaderboardBInspect
The Syndicate's shared 'Biggest Scores' leaderboard — humans and AI agents on ONE board; agent entries carry {"agent": true} and a model label. Win a game (own the city) and your score posts automatically.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses some data structure (agent entries include a flag and model label) but does not explicitly state side effects, authentication requirements, or rate limits. It does not say whether the tool is read-only or if it modifies anything. Since no annotations exist, the description carries the burden, and this partial disclosure is insufficient for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using two sentences and a dash/semicolon style. It provides key facts without excessive verbosity, though the structure is slightly informal and could be more streamlined. Overall, it is well-organized and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks contextual information about when to call this tool, what a typical use case would be, or how it fits into the broader workflow. It does not mention any preconditions or expected outcomes beyond the automatic posting. An agent would have limited basis to decide when this tool is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema fully documents that fact (100% coverage). The description adds no parameter-specific details, but none are needed. This aligns with the baseline of 3 for high schema coverage where parameter info is already complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a shared leaderboard for 'Biggest Scores' involving humans and AI agents, and notes that winning a game posts scores automatically. It implies a read/access operation, though it lacks an explicit verb like 'get' or 'list'. This is a minor gap, but the overall purpose is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool vs. alternatives. The mention of automatic score posting describes system behavior, not a decision criterion for invoking the tool. There is no comparison to sibling tools or any context that would help an agent choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syndicate_moveAInspect
Submit one day of orders to your Syndicate game and get the resolved day back (events + new state). One order per crew member per day.
orders: list of {"agentId": int, "targetId": int, "actionType": str} actionType is one of: raid, driveby, extort, garrison, rob, patrol, heal, pray, retain, injunction, cook_books, audit, hire, swat_raid, charity, intimidate, launder, rig_games, brawl, ambush, campaign, precinct_raid, lay_low, steal_car, fence.
Empty orders list = pass the day (the world still moves: rivals act,
rackets pay, heat decays). targetId comes from the targets and
territory lists in syndicate_state.
| Name | Required | Description | Default |
|---|---|---|---|
| orders | Yes | ||
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral transparency. It discloses key behaviors: advancing the day, resolving events, returning new state, the one-order-per-crew-member limit, and the effect of an empty orders list. It does not mention potential side effects such as turn consumption or failure modes, but covers the primary behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise overall but contains slight redundancy: the orders structure and the empty orders behavior are each mentioned twice. It could be tightened into a more structured format, but it remains readable and directly to the point without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the input format, action types, the special empty-orders case, and the source for targetId. It gives a high-level expectation of the output ('events + new state'). It does not detail error handling or additional constraints, but for a game move tool the provided context is adequate for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains both parameters. For 'orders', it specifies the list structure (agentId, targetId, actionType) and enumerates all valid actionType values. For 'targetId', it directs the user to obtain valid values from syndicate_state lists. 'session_id' is implied as the game session identifier. The schema itself has no descriptions, so this textual coverage is comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific function: submitting one day of orders to the Syndicate game and receiving the resolved day with events and new state. It uses a specific verb ('Submit') and distinguishes the resource ('one day of orders'). While it doesn't explicitly contrast sibling tools, the purpose is unambiguous and self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not explicitly state when to use it versus alternatives like syndicate_state or syndicate_leaderboard. It implies usage (for submitting orders) and covers edge cases like empty orders (passing the day), but lacks direct when-to-use or when-not-to-use guidance relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
syndicate_stateBInspect
The Syndicate — a FREE turn-based organized-crime strategy game you (the agent) can play. Same city, same rules, same leaderboard as the human game at play.the-undesirables.com.
Call with NO session_id to start a new game (you get a sessionId, your 3-member crew, capital, and a target list). Call with your session_id to re-read the current state any time. Full rules: play.the-undesirables.com/SKILL.md
Strategy tip: looted cards are priced by the REAL TCG market — use card_forecast / search_tcg_products to decide what to fence and when.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of explaining side effects. It mentions starting a new game and returning a sessionId, crew, capital, and target list, but does not disclose whether starting a new game overwrites or creates additional sessions, or whether re-reading has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains marketing language ('FREE', 'you (the agent) can play', 'Same city, same rules, same leaderboard') and a strategy tip that are not essential for invoking the tool. A more focused description of the state retrieval/creation behavior would be significantly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the main usage pattern and a link to full rules, and it lists the fields returned on a new game. However, there is no output schema and the response shape for an existing session is not explicitly described, leaving some ambiguity about what 'current state' includes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter session_id is explained in the description: omitting it starts a new game, while providing it re-reads the current state. This compensates for the schema's lack of a parameter description, though it does not specify the expected format or source of session_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly indicates that the tool starts a new Syndicate game when no session_id is provided and re-reads the current state when a session_id is included. However, it does not use a crisp verb-noun phrase like 'get game state' and includes some promotional framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Some usage guidance is present: omit session_id to start, include session_id to re-read. But it does not explicitly contrast this with sibling tools like syndicate_move or syndicate_leaderboard, nor does it state when this tool should be preferred over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
technocore_infoAInspect
technocore.chat reader 4/4 — the server's API DOCS (llms.txt), what this read-only integration can and cannot do, and proof_feed: this oracle's own verifiable price feed on technocore (/r/d-undsr-oracle — signed, chain-anchored, checkable by anyone). FREE, no arguments.
Use this when: an agent wants to learn the technocore API itself or verify our feed. For rooms, messages, or notes use the other three readers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool is read-only, free, and takes no arguments, which gives some behavioral transparency. However, it does not concretely describe what the returned data will look like or what 'can and cannot do' actually encompasses, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively brief and front-loads the core purpose. The formatting is a bit cluttered with slash-separated phrases, but it remains compact and does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough context to choose the tool and understand its general scope, but it lacks detail about the output format or the exact contents of the API docs and proof feed. Since there is no output schema, a bit more specificity would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100% with an empty properties object. The description reinforces that there are no arguments, so parameter semantics are fully satisfied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is a read-only reader for technocore.chat API docs and a verifiable price feed, with a clear use case for learning about the API or verifying the feed. It is somewhat convoluted but sufficiently distinguishes this tool from the room/message/note readers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when: an agent wants to learn the technocore API itself or verify our feed.' It also gives an exclusion: 'For rooms, messages, or notes use the other three readers,' providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
technocore_noteAInspect
technocore.chat reader 3/4 — READ one shared KEY-VALUE NOTE (namespace + key), the way agents publish state for other agents. FREE, read-only.
Use this when: an agent needs a value another agent published (config, observations, coordination state). Not for conversation — that is technocore_room.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| namespace | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states 'FREE, read-only' and 'READ', disclosing the non-mutating nature. It does not cover error handling or edge cases (e.g., missing key), but for a simple note read this is acceptable. It adds the context that this is a shared store for agent-published state, which is useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, focused sentences. The first sentence front-loads the purpose and key constraints (read, key-value, namespace+key, free, read-only). The second provides usage guidance. Zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only note retrieval tool with no output schema, the description covers the essential aspects: what it does, when to use it, and how it differs from siblings. It does not explicitly state the return format, but the phrase 'READ one shared KEY-VALUE NOTE' implies the value is returned. Given the simplicity, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that namespace and key together identify the note, giving the core semantics. However, it does not clarify that key is optional (default '' in schema) or describe the expected format or behavior when key is omitted. The description adds value but is not fully compensating for the absence of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('READ') and resource ('one shared KEY-VALUE NOTE') and explicitly names the identifier components (namespace + key). It also distinguishes from sibling technocore_room by noting it is not for conversation, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('when an agent needs a value another agent published') and explicitly states what it is not for ('Not for conversation — that is technocore_room'), naming the alternative. This fully routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
technocore_roomAInspect
technocore.chat reader 2/4 — READ the recent MESSAGES in one named room. FREE, read-only — structurally incapable of posting.
Use this when: an agent wants to follow one room's conversation (e.g. Flop Network testnet/faucet announcements) without joining. Get room names from technocore_rooms; for published state values use technocore_note instead.
| Name | Required | Description | Default |
|---|---|---|---|
| room | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description explicitly states 'FREE, read-only — structurally incapable of posting.' This discloses the key behavioral trait of having no side effects, which is a major risk factor for tool use. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, well structured, and free of unnecessary detail. It packs the core behavior, side-effect profile, usage scenario, and sibling-tool references into just a few lines without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and the fact that no output schema is present, the description provides enough context for an agent to choose and call the tool for its primary purpose. It could be slightly more complete by describing the return format, but it already implies that messages are returned and gives sufficient alternatives for related tasks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description indirectly explains the 'room' parameter by saying 'one named room' and pointing to technocore_rooms for room names, but it does not explain the 'limit' parameter at all. Since schema description coverage is 0%, the description should have compensated by covering both parameters; it only partially covers one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('READ') and a specific resource ('recent MESSAGES in one named room'), and distinguishes this tool from related tools such as technocore_rooms and technocore_note. It is clear what the tool does and how it differs from its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it ('follow one room's conversation ... without joining') and gives direct guidance for alternatives: get room names from technocore_rooms and use technocore_note for published state values. This gives an agent clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
technocore_roomsBInspect
technocore.chat reader 1/4 — LIST the rooms. technocore.chat is the agent-to-agent chat/notes server for the upcoming Flop Network (agent economy L1). FREE, read-only, no arguments.
Start here to discover room names; then technocore_room (messages), technocore_note (a shared key-value note), or technocore_info (API docs + our signed price-proof feed).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It explicitly says 'read-only' and 'FREE', covering side effects and cost. However, the claim 'no arguments' is inaccurate given the limit parameter, and no annotation corroborates these traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is partially concise but includes extraneous marketing context ('Flop Network', 'agent economy L1') that does not aid invocation, and the false 'no arguments' statement adds noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It provides an overview and pointers to related tools, but omits any explanation of the limit parameter and misrepresents the argument list, leaving important invocation details unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema exposes an optional 'limit' parameter with no explanation, and the description actively denies any arguments, which is misleading and leaves the limit parameter undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'LIST' and the resource 'rooms', and explicitly says 'Start here to discover room names', making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a sequencing hint ('Start here') and lists related tools as next steps, but does not explicitly state when to avoid this tool or contrast it directly with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_cardsAInspect
A RANKED LIST of individual cards by PRICE VELOCITY (drift), highest absolute movement first, with the conformal risk row (bands, VaR, grades) attached to each card. Filter by game, limit, and min_price. Built for picking cards, not for summarizing the market.
NOTE (corrected 2026-07-30): this previously claimed "30-day sales volume".
Sales volume and view counts are NOT in the dataset and the API itself now
explicitly disclaims them — see ranked_by in the response.
Band and VaR PERCENTAGES are regime-level constants by design (regime-aware split conformal), so cards in the same regime share them; absolute values differ per card. Do not read it as a per-card fit. Covers all 25+ games.
PAID: $0.025 USDC per call.
Use this when: a user asks "which cards are moving fastest right now?" and wants names to act on. For the day's whole-market summary (gainers/losers by game, volume leaders) use market_snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| game | No | ||
| limit | No | ||
| min_price | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses the paid cost, corrects previous claims about sales volume/view counts, explains that band/VaR percentages are regime-level constants, and notes the API disclaims certain data via ranked_by.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is focused and each sentence adds meaningful information: output type, ranking criteria, filter options, caveats, pricing, and sibling-tool comparison. It is appropriately concise without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description explains the return shape (ranked list with conformal risk row) and important behavioral details such as coverage across games, cost, and data limitations. This is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only names and defaults, but the description mentions filtering by game, limit, and min_price, which maps to all three parameters. It does not detail game value format or currency for min_price, but the essentials are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a ranked list of individual cards by price velocity, with highest absolute movement first, and explicitly distinguishes it from market_snapshot for whole-market summaries. This makes the tool's purpose and scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage direction: use when a user asks which cards are moving fastest and wants names to act on, and use market_snapshot for day's whole-market summary. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v2.1.0- Removed
check_accuracy
59 tool updates
v2.0.0- Added
card_forecast - Added
check_accuracy - Removed
create_banner - Removed
create_memory_relation - Removed
detect_emotion - Removed
execute_code - Removed
execute_shell - Added
fantasy_league - Removed
generate_3d_object - Removed
generate_meme - Removed
get_memory_subgraph - Removed
get_rag_context - Removed
get_skill - Removed
get_voice_preset - Added
grade_card - Added
grade_or_not - Removed
grade_tcg_card - Removed
image_to_3d - Removed
index_soul_workspace - Removed
invoke_council - Removed
list_skills - Added
loan_terms_preview - Added
market_snapshot - Removed
memory_recall - Removed
memory_save - Added
optimize_portfolio - Added
oracle_scorecard - Removed
produce_video - Removed
purchase_undesirables_license_key - Removed
query_memory_graph - Removed
query_ollama - Added
recommend_workflow - Removed
remove_background - Removed
run_security_audit - Removed
scan_media_file - Removed
search_ebay_market - Removed
search_soul_memory - Added
search_tcg_products - Removed
self_reflect - Added
simulate_price - Added
soul_calls - Removed
soul_listen - Removed
soul_speak - Added
souls_in_wallet - Added
sports_board - Added
syndicate_leaderboard - Added
syndicate_move - Added
syndicate_state - Added
technocore_info - Added
technocore_note - Added
technocore_room - Added
technocore_rooms - Added
trending_cards - Removed
update_memory - Removed
upsert_memory_node - Removed
verify_soul_initialization - Removed
video_production_beat_sync - Removed
viral_clip_extractor - Removed
web_search
3 tool updates
v1.1.5- Changed
generate_meme9 fields changed- changed
Input schema / properties / bottom_text / descriptionPrevious value: -"Memetic text to draw at the bottom (impact font with stroke)"New value: +"Memetic text to draw at the bottom (impact font with stroke)." - added
Input schema / properties / font_style / descriptionAdded value: +"Font family to use for meme text (e.g., 'Impact', 'Arial')." - added
Input schema / properties / format_type / descriptionAdded value: +"The layout format for the meme (e.g., 'meme', 'demotivational')." - changed
Input schema / properties / height / descriptionPrevious value: -"Image height in pixels (default 512)"New value: +"Output image height. Defaults to 512." - changed
Input schema / properties / overlay_image_path / descriptionPrevious value: -"Absolute path to a transparent PNG (e.g. your PFP cutout) to layer on top"New value: +"Absolute path to a transparent PNG (e.g. your PFP cutout) to layer on top." - changed
Input schema / properties / seed / descriptionPrevious value: -"Random seed for reproducibility (-1 for random)"New value: +"Random seed for deterministic generation. Defaults to -1 (random)." - changed
Input schema / properties / top_text / descriptionPrevious value: -"Memetic text to draw at the top (impact font with stroke)"New value: +"Memetic text to draw at the top (impact font with stroke)." - added
Input schema / properties / visual_style / descriptionAdded value: +"The artistic style of the generated background (e.g., 'Default', 'Photorealistic')." - changed
Input schema / properties / width / descriptionPrevious value: -"Image width in pixels (default 512)"New value: +"Output image width. Defaults to 512."
- Changed
search_ebay_market2 fields changed- added
Input schema / properties / app_id / descriptionAdded value: +"Optional eBay API App ID. If omitted, uses server environment variable." - added
Input schema / properties / client_secret / descriptionAdded value: +"Optional eBay API Client Secret. If omitted, uses server environment variable."
- Changed
soul_speak5 fields changed- added
Input schema / properties / soul_agreeableness / descriptionAdded value: +"Big Five Agreeableness score (0-100) affecting pitch softness." - added
Input schema / properties / soul_conscientiousness / descriptionAdded value: +"Big Five Conscientiousness score (0-100) affecting cadence." - added
Input schema / properties / soul_extraversion / descriptionAdded value: +"Big Five Extraversion score (0-100) affecting volume and energy." - added
Input schema / properties / soul_neuroticism / descriptionAdded value: +"Big Five Neuroticism score (0-100) affecting pitch variation and speed." - added
Input schema / properties / soul_openness / descriptionAdded value: +"Big Five Openness score (0-100) affecting voice modulation."
36 tool updates
v1.0.0- First observed
create_banner - First observed
create_memory_relation - First observed
detect_emotion - First observed
execute_code - First observed
execute_shell - First observed
generate_3d_object - First observed
generate_meme - First observed
get_memory_subgraph - First observed
get_rag_context - First observed
get_skill - First observed
get_voice_preset - First observed
grade_tcg_card - First observed
image_to_3d - First observed
index_soul_workspace - First observed
invoke_council - First observed
list_skills - First observed
memory_recall - First observed
memory_save - First observed
produce_video - First observed
purchase_undesirables_license_key - First observed
query_memory_graph - First observed
query_ollama - First observed
remove_background - First observed
run_security_audit - First observed
scan_media_file - First observed
search_ebay_market - First observed
search_soul_memory - First observed
self_reflect - First observed
soul_listen - First observed
soul_speak - First observed
update_memory - First observed
upsert_memory_node - First observed
verify_soul_initialization - First observed
video_production_beat_sync - First observed
viral_clip_extractor - First observed
web_search
TDQS
Scored across 22 tools
Most tools have distinct, well-scoped purposes, but a few pairs (grade_card vs grade_or_not, card_forecast vs simulate_price, market_snapshot vs trending_cards) overlap thematically and require careful reading of the descriptions to pick correctly. The descriptions do clearly delineate the differences, so confusion is limited.
Tool names follow no consistent verb_noun or object_action pattern: some are action-led (search_tcg_products, simulate_price), some are object-led (market_snapshot, sports_board), and others are bare nouns or prefixes (technocore_rooms, technocore_room, soul_calls). While all use snake_case, the naming is too varied to be predictable.
With 22 tools, the set is larger than the ideal 3–15 and spans multiple auxiliary domains (syndicate game, fantasy league, technocore chat, souls) beyond the core TCG oracle. Each tool does have a distinct role, but the overall surface feels heavy and could overwhelm an agent.
The core TCG workflow is well covered: search, forecast, simulate, trend, market summary, grade, portfolio optimization, and loan preview are all present. Minor gaps exist—such as no direct paid loan quote tool and no explicit free forecast-board tool—but these are referenced in descriptions and can be worked around.
Maintenance
Related MCP Connectors
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Research-only MCP server: your AI as a quant research desk. 90 tools, no trades, no brokers.
Related MCP Servers
- AlicenseBqualityDmaintenanceDynamic MCP server — 30+ tools across fact verification, agent memory, Indian NLP, contract risk, security threat modelling, sales call intelligence and more. x402/USDC micropayments on Base.3310 npmMIT
- AlicenseNot gradedqualityDmaintenanceAI-to-AI marketplace MCP server with 46 tools — swap 65+ crypto tokens on 7 chains, rent GPUs, trade 25 tokenized stocks, on-chain escrow (Solana + Base), DeFi yields, sentiment analysis, wallet monitoring, and image generation. Supports USDC payments across 14 blockchains.MIT
- AlicenseAqualityBmaintenanceOn-chain TCG price oracle for the LitecoinVM ecosystem. 6 tools: search 433K+ trading cards, 60-day price history, Merkle proof verification on LiteForge (Chain 4441), Monte Carlo simulation, and AI card grading via Qwen 2.5 VL.7Business Source 1.1
- FlicenseAqualityDmaintenanceLocal multimodal MCP server for vision, document, audio, video, and GUI automation, all processed locally on Apple Silicon for privacy and security.9-