Trading Simulator MCP Server
トレーディングシミュレーター MCP サーバー
トレーディングシミュレーターAPIと連携するためのMCP(モデルコンテキストプロトコル)サーバー。このサーバーにより、ClaudeのようなAIモデルは、MCP互換インターフェースを介して残高や価格を確認し、取引を実行できるようになります。
特徴
この MCP サーバーは、構造化されたツール呼び出しを通じてトレーディング シミュレーター操作へのアクセスを提供します。
アカウント操作
トークン残高を取得する
ポートフォリオ情報を取得する
取引履歴を表示
価格操作
トークンの価格を取得する
トークン情報を取得する
価格履歴を見る
取引業務
トークン間の取引を実行する
潜在的な取引の見積もりを取得する
チェーンパラメータを自動的に処理するスマートトークン検出
競技運営
競技状況を確認する
リーダーボードランキングを見る
Related MCP server: Scorched
スマートトークン処理
トレーディング シミュレーター MCP には、取引の実行を簡素化するインテリジェントなトークン検出システムが含まれています。
自動チェーン検出: 一般的なトークンで取引を実行する場合、システムは適切なブロックチェーン (EVM/SVM) と特定のチェーン (ETH、BASE など) のパラメータを自動的に識別します。
同一チェーンの最適化: 同じチェーン上でトークンを取引する場合、同一チェーン取引のパラメータが自動的に設定されます。
クロスチェーンフォールバック: トークンが異なるチェーン上にあるために同じチェーンの取引が失敗した場合、システムは明示的なパラメータまたはサーバー側の検出に適切にフォールバックします。
共通トークンのサポート: システムには、アドレスとチェーン情報を含む共通トークンのリストが含まれます。
認証
Trading Simulator API は Bearer トークン認証を使用するため、Bearer トークンとしてAuthorizationヘッダーに渡される単一の API キーが必要です。
例:
Authorization: Bearer your_api_key_here設定
リポジトリをクローンする
git clone https://github.com/yourusername/trading-simulator-mcp.git cd trading-simulator-mcp依存関係をインストールする
npm installAPI 資格情報を設定します (以下の設定セクションを参照)
プロジェクトを構築する
npm run buildサーバーを起動する
npm run start
構成
Trading Simulator MCP サーバーを構成するには、次の 2 つのオプションがあります。
方法 1: Cursor/Claude での直接設定 (推奨)
推奨される方法は、Cursor または Claude Desktop の設定で環境変数を直接指定することです。これによりセキュリティが向上し、.env ファイルが不要になります。
構成を通じて提供される場合、サーバーはこれらの環境変数を自動的に使用します。
具体的なセットアップ手順については、以下の「カーソルへの追加」および「Claude デスクトップへの追加」セクションを参照してください。
方法2: .env ファイルを使用する(フォールバック)
.env ファイルを使用する場合、またはコマンド ラインから直接サーバーを実行する場合:
API認証情報を含む
.envファイルを作成するcp .env.example .envAPIキーを使用して
.envファイルを編集しますTRADING_SIM_API_KEY=your_api_key_here TRADING_SIM_API_URL=http://localhost:3000 DEBUG=false制限された権限で.envファイルを保護する
chmod 600 .env
環境変数の優先順位
Trading Simulator MCP サーバーは、環境変数に対して次の優先順位を使用します。
JSON 構成から直接提供される環境変数
.env ファイルからの環境変数(存在し、#1 が利用できない場合)
オプション変数のデフォルト値(例:API_URL のデフォルトは " http://localhost:3000 ")
カーソルに追加
この MCP サーバーをカーソルに追加するには:
まず
npm run buildでプロジェクトをビルドします。カーソルで、「設定」>「MCPサーバー」に移動します。
「サーバーを追加」をクリックします
次の設定でサーバーを構成します。
名前:
Trading Simulator MCP(または任意の名前)タイプ:
commandコマンド:
node引数:
/path/to/trading-sim-mcp/dist/index.js(フルパスを使用)環境変数:
TRADING_SIM_API_KEY: APIキーTRADING_SIM_API_URL: APIサーバーのURL(オプション)DEBUG:true(オプション、追加のログ記録用)
「保存」をクリック
カーソル設定における環境変数の使用
セキュリティを強化するには、ホーム ディレクトリの.cursor/mcp.jsonファイルを使用して Cursor を設定できます。
{
"mcpServers": {
"trading-simulator-mcp": {
"name": "Trading Simulator MCP",
"type": "command",
"command": "node",
"args": ["/path/to/trading-simulator-mcp/dist/index.js"],
"env": {
"TRADING_SIM_API_KEY": "your_api_key_here",
"TRADING_SIM_API_URL": "http://localhost:3000",
"DEBUG": "true"
}
}
}
}このアプローチにより、.env ファイルが不要になります。
Claudeデスクトップに追加
この MCP サーバーを Claude Desktop に追加するには:
まず
npm run buildでプロジェクトをビルドします。Claude Desktop 構成ファイルを次の場所に移動します。
macOSの場合:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows の場合:
%APPDATA%\Claude\claude_desktop_config.jsonLinuxの場合:
~/.config/Claude/claude_desktop_config.json
次の内容で
claude_desktop_config.jsonファイルを作成または編集します。{ "mcpServers": { "trading-simulator-mcp": { "name": "Trading Simulator MCP", "type": "command", "command": "node", "args": [ "/path/to/trading-simulator-mcp/dist/index.js" ], "env": { "TRADING_SIM_API_KEY": "your_api_key_here", "TRADING_SIM_API_URL": "http://localhost:3000", "DEBUG": "true" } } } }/path/to/trading-simulator-mcp/dist/index.jsをコンパイルしたサーバーファイルへのフルパスに置き換えます。例:
/Users/username/trading-simulator-mcp/dist/index.js
設定ファイルを保存し、Claude Desktopを再起動します。
Claude Desktop で問題が発生した場合は、次のログを確認してください。
macOSの場合:
~/Library/Logs/Claude/Windows の場合:
%USERPROFILE%\AppData\Local\Claude\Logs\Linuxの場合:
~/.local/share/Claude/logs/
重要な開発ノート
MCPサーバーを開発する際は、デバッグとログ出力にconsole.error()ではなくconsole.log()を使用してください。Claude DesktopアプリとCursorはstdout経由でサーバーと通信するため、 console.log()ステートメントは通信を妨害し、JSON解析エラーを引き起こします。
MCPツール
サーバーは次の MCP ツールを提供します。
アカウントツール
get_balances- チームのトークン残高を取得するget_portfolio- チームのポートフォリオ情報を取得するget_trades- チームのトレード履歴を取得する
価格ツール
get_price- トークンの現在の価格を取得するget_token_info- トークンの詳細情報を取得するget_price_history- トークンの過去の価格データを取得する
取引ツール
execute_trade- 2つのトークン間の取引を実行する一般的なトークンのチェーンパラメータを自動的に検出して割り当てます
明示的なチェーンパラメータを必要とせずに同一チェーン取引をサポート
クロスチェーンシナリオに適切にフォールバックします
get_quote- 潜在的な取引の見積もりを取得する
競争ツール
get_competition_status- 現在の競争のステータスを取得しますget_leaderboard- 競争のリーダーボードを取得する
共通トークン
システムには、トークンアドレスをそれぞれのチェーンにマッピングするCOMMON_TOKENS構造体が含まれています。これにより、取引実行時にチェーンパラメータの自動検出が可能になります。
現在一般的なトークンには以下のものがあります:
ソラナ(SVM)
USDC:
EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1vソル:
So11111111111111111111111111111111111111112
イーサリアム(EVM)
USDC:
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48ウェス:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
ベース(EVM)
USDC:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913ETH:
0x4200000000000000000000000000000000000006
より一般的なトークンを追加するには、 types.tsファイル内のCOMMON_TOKENSオブジェクトを拡張できます。
セキュリティに関する考慮事項
APIキーは安全に保管し、クライアント側のコードで共有したり公開したりしないでください。
本番環境でAPIに接続するときは常にHTTPSを使用する
APIキーは取引を実行するための完全なアクセス権を持っているため、それに応じて保護してください。
Available Tools
15 toolsexecute_tradeC
Execute a trade between tokens
| Name | Required | Description | Default |
|---|---|---|---|
| fromToken | Yes | Source token address | |
| toToken | Yes | Destination token address | |
| amount | Yes | Amount of fromToken to trade | |
| reason | Yes | Reason for executing this trade | |
| slippageTolerance | No | Optional slippage tolerance percentage (e.g., '0.5' for 0.5%) | |
| fromChain | No | Optional blockchain type for source token | |
| toChain | No | Optional blockchain type for destination token | |
| fromSpecificChain | No | Optional specific chain for source token | |
| toSpecificChain | No | Optional specific chain for destination token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but provides minimal information. 'Execute a trade' implies a write/mutation operation with financial consequences, but the description doesn't disclose critical behaviors: whether this is a live market order, if it requires wallet authentication, what happens on failure (partial fills, reverts), rate limits, or confirmation requirements. For a high-stakes financial tool, this is dangerously inadequate.
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 maximally concise at 5 words with zero waste. It's front-loaded with the core action and doesn't contain any redundant information. While brevity can be problematic for complex tools, this description at least doesn't waste space on tautologies or irrelevant details.
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 complex financial execution tool with 9 parameters, no annotations, and no output schema, the description is severely incomplete. It doesn't explain what type of trading system this interfaces with, what happens after execution (does it return a transaction hash? confirmation?), error conditions, or security implications. The agent lacks critical context to use this tool safely and effectively despite the detailed parameter schema.
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 100%, so the schema already documents all 9 parameters thoroughly with descriptions and enums. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters (e.g., that fromChain should match fromSpecificChain), doesn't clarify the 'reason' parameter's purpose in the trading context, or provide examples of valid token addresses. Baseline 3 is appropriate when schema does the heavy lifting.
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 action ('execute a trade') and resources ('between tokens'), making the purpose immediately understandable. However, it doesn't differentiate this execution tool from the sibling 'get_trades' tool that presumably retrieves trade history, nor does it specify what kind of trading system this is (e.g., DEX, CEX, automated).
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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like needing sufficient balance), no comparison to the 'get_quote' sibling tool that might be used for price estimation before execution, and no indication of whether this is for spot trading, limit orders, or other types. The agent must infer usage context from parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balancesB
Get token balances for your team
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as whether this is a read-only operation, requires authentication, has rate limits, or what the return format looks like, which is inadequate for a tool with zero annotation coverage.
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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'token balances' entail, the scope of 'your team', or the return format, leaving significant gaps for the agent to understand the tool's behavior and output.
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 0 parameters with 100% coverage, so no parameter information is needed. The description doesn't add parameter details, but this is acceptable given the schema's completeness, warranting a baseline score above 3 for this context.
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 action ('Get') and resource ('token balances for your team'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_portfolio' or 'get_profile' that might also involve balance-related information, preventing a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or comparisons to siblings like 'get_portfolio' or 'get_trades', leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_competition_rulesB
Get the rules and configuration details for the competition
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It states this is a read operation ('Get'), implying it's non-destructive, but doesn't address other traits like authentication requirements, rate limits, error conditions, or what happens if no competition exists. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('Get') and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential 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 simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks details on behavioral traits, usage context, or output format. Without annotations or output schema, the agent won't know what the return value looks like (e.g., structured rules vs. raw text), which is a notable gap for a 'get' operation.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. A baseline of 4 is applied since there are no parameters to document, and the description doesn't mislead about inputs.
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 'Get' and the resource 'rules and configuration details for the competition', making the purpose unambiguous. It distinguishes this from siblings like get_competition_status (which likely returns status rather than rules) and get_leaderboard (which returns rankings). However, it doesn't specify whether this retrieves all rules or a subset, which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether the competition must be active), exclusions, or comparisons to siblings like get_competition_status. The agent must infer usage from the tool name alone, which is insufficient for optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_competition_statusC
Get the status of the current competition
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It states a read operation ('Get'), implying it's likely non-destructive, but doesn't clarify aspects like authentication needs, rate limits, error conditions, or what the return format might be (e.g., JSON structure, possible values). This is a significant gap for a tool with zero annotation coverage.
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 a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the tool's intent without unnecessary elaboration, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'status' means (e.g., whether it returns a simple string, structured data, or includes metadata), nor does it cover behavioral aspects like error handling. For a tool with no structured data beyond the input schema, more context is needed to guide the agent effectively.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it also doesn't provide any extra context about inputs (e.g., implied defaults). Baseline is 4 for zero parameters, as the schema fully handles the lack of inputs.
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 'Get the status of the current competition' clearly states the action (get) and target resource (competition status), which is adequate. However, it doesn't differentiate from sibling tools like 'get_competition_rules' or 'get_leaderboard', leaving the specific scope of 'status' ambiguous compared to those alternatives.
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 no guidance on when to use this tool versus alternatives such as 'get_competition_rules' or 'get_leaderboard'. It lacks context about what 'status' entails (e.g., active/inactive, time remaining, participant count) or prerequisites, leaving the agent to infer usage based on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_detailed_healthB
Detailed health check with information about all services
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it indicates this is a read operation (health check), it doesn't describe what 'detailed' means, whether it requires authentication, what format the information comes in, potential rate limits, or error conditions. The description is too vague about actual behavior.
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 a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a zero-parameter tool and gets straight to the point with no fluff or redundant 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?
For a zero-parameter health check tool with no output schema, the description provides basic purpose but lacks important context. It doesn't explain what 'detailed' means compared to the sibling 'get_health', what format the health information returns, or what constitutes 'all services'. The absence of annotations means the description should do more heavy lifting.
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 with 100% schema description coverage, so the schema fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist, maintaining focus on the tool's purpose rather than unnecessary parameter details.
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: performing a 'detailed health check' that provides 'information about all services'. It uses specific verbs ('check', 'information about') and identifies the resource ('services'), though it doesn't explicitly differentiate from its sibling 'get_health' tool.
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 no guidance on when to use this tool versus alternatives. There's no mention of when to choose this over the simpler 'get_health' sibling tool, nor any context about prerequisites, timing, or appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_healthB
Basic health check for the trading simulator API
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It states this is a 'basic health check', implying a read-only, non-destructive operation that likely returns API status. However, it doesn't specify what 'basic' entails (e.g., uptime, latency, error rates), response format, or any rate limits or authentication needs. The description adds minimal context beyond the name.
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core function ('basic health check') and specifies the target ('trading simulator API'). Every part of the sentence earns its place, making it highly concise and well-structured.
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 (0 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what 'basic health check' returns (e.g., status codes, metrics) or how it differs from 'get_detailed_health'. For a health check tool, understanding the output is critical, but the description lacks this context, leaving gaps for the agent.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't mention parameters, which is appropriate. Since there are no parameters to explain, the baseline score is 4, as the description doesn't need to compensate for any gaps.
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 as a 'basic health check for the trading simulator API', which includes both the verb ('health check') and resource ('trading simulator API'). However, it doesn't explicitly differentiate from its sibling 'get_detailed_health', which appears to be a more comprehensive alternative. The purpose is specific but lacks sibling distinction.
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 no guidance on when to use this tool versus alternatives like 'get_detailed_health' or other sibling tools. It doesn't mention prerequisites, timing, or exclusions. The agent must infer usage from the name and context alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leaderboardC
Get the competition leaderboard
| Name | Required | Description | Default |
|---|---|---|---|
| competitionId | No | Optional competition ID (if not provided, the active competition is used) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Get' implying a read operation, but doesn't disclose behavioral traits such as whether it requires authentication, has rate limits, returns paginated results, or what happens if no competition is active. This leaves significant gaps for a tool that likely involves data retrieval.
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 with a single sentence, 'Get the competition leaderboard', which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration, making it easy to scan and understand quickly.
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 complexity of a leaderboard tool (likely involving rankings, scores, or participants), no annotations, and no output schema, the description is incomplete. It doesn't explain what the leaderboard contains, how results are structured, or any behavioral aspects like error handling. This leaves the agent with insufficient information for reliable use.
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 100% description coverage, with the parameter 'competitionId' documented as optional and defaulting to the active competition. The description adds no additional meaning beyond this, as it doesn't mention parameters at all. With high schema coverage, the baseline score of 3 is appropriate, as the schema adequately handles 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 'Get the competition leaderboard' clearly states the action (get) and resource (competition leaderboard), but it's somewhat vague about what 'leaderboard' entails (e.g., rankings, scores, participants). It distinguishes from siblings like 'get_competition_status' or 'get_competition_rules' by focusing on rankings, but lacks specificity on scope or format.
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 on when to use this tool versus alternatives. For example, it doesn't mention if this is for active competitions only, how it relates to 'get_competition_status' or 'get_portfolio', or any prerequisites. The description alone offers no usage context beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolioC
Get portfolio information for your team
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 implies a read operation ('Get'), but doesn't disclose behavioral traits such as authentication needs, rate limits, data freshness, or what 'portfolio information' entails (e.g., format, scope). This leaves significant gaps for an agent.
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 a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.
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 (0 parameters, no output schema), the description is minimal but insufficient. It lacks details on what 'portfolio information' includes, how it's structured, or any behavioral context, which is needed for completeness even without complex schema elements.
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 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for 0 parameters is 4, as the description doesn't need to compensate for missing param info, but it doesn't add extra value beyond stating the tool's purpose.
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 'Get portfolio information for your team' states a clear verb ('Get') and resource ('portfolio information'), but it's vague about what specific information is retrieved (e.g., holdings, performance, allocations) and doesn't distinguish from siblings like 'get_balances' or 'get_trades'. It's adequate but lacks specificity.
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 no guidance on when to use this tool versus alternatives like 'get_balances' or 'get_trades', nor does it mention any prerequisites or context for usage. It's a basic statement with no comparative or exclusionary information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_priceC
Get the current price for a token
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token address | |
| chain | No | Optional blockchain type | |
| specificChain | No | Optional specific chain for EVM tokens |
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 of behavioral disclosure. It states the tool 'Get[s] the current price', implying a read-only operation, but doesn't disclose any behavioral traits such as rate limits, data sources, freshness of prices, error conditions, or response format. This is a significant gap for a tool with no annotation coverage.
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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'current price' means (e.g., in what currency, from which source), nor does it describe the return values or potential errors. For a tool with no structured behavioral data, this leaves significant gaps in understanding how to use it effectively.
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 no meaning beyond what the input schema provides. With 100% schema description coverage, the schema already documents all parameters (token, chain, specificChain) with descriptions and enums. The baseline score of 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate with additional context like examples or parameter interactions.
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 with a specific verb ('Get') and resource ('current price for a token'), making it easy to understand what it does. However, it doesn't distinguish itself from sibling tools like 'get_quote' or 'get_token_info', which might also provide price-related information, so it doesn't reach the highest score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_quote' or 'get_price_history', nor does it specify use cases or prerequisites, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyC
Get historical price data for a token
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token address | |
| startTime | No | Start time as ISO timestamp | |
| endTime | No | End time as ISO timestamp | |
| interval | No | Time interval for price points | |
| chain | No | Optional blockchain type | |
| specificChain | No | Optional specific chain for EVM tokens |
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 of behavioral disclosure. It states what the tool does but lacks critical behavioral details: it doesn't specify the return format (e.g., array of price points), data sources, rate limits, authentication requirements, or error handling. For a tool with 6 parameters and no annotation coverage, this is a significant gap in 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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence earns its place by specifying the action, data type, and target resource. No structural issues or redundancy are present.
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 (6 parameters, no output schema, no annotations), the description is incomplete. It lacks details on return values, data format, limitations (e.g., date ranges supported), and behavioral context. While the schema covers parameters well, the overall context for effective tool use is insufficient, especially for a data retrieval tool with multiple options.
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 100%, with all parameters well-documented in the schema itself (e.g., 'token address', 'ISO timestamp', 'time interval'). The description adds no additional parameter semantics beyond the schema, as it doesn't explain parameter interactions, defaults, or usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Get') and resource ('historical price data for a token'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'get_price' (which likely provides current price) by specifying historical data. However, it doesn't explicitly differentiate from other historical data tools if they existed, though none are present in the sibling list.
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 no guidance on when to use this tool versus alternatives. While it implies usage for historical price retrieval, it doesn't mention when to choose this over 'get_price' (for current prices) or other tools like 'get_token_info' (which might include some price data). No exclusions, prerequisites, or context for selection are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileC
Get your team's profile information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. It states it's a 'Get' operation, implying read-only behavior, but doesn't specify authentication requirements, rate limits, error conditions, or what happens if no team profile exists. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, clear sentence with no wasted words. It's front-loaded with the core purpose. While it could be more informative, it's appropriately concise for a simple tool, earning a high score for efficiency.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'profile information' includes (e.g., team name, members, settings) or the return format. For a tool with no structured output documentation, the description should provide more context about what to expect from the operation.
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 0 parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. With no parameters, the baseline is 4 as it avoids unnecessary complexity.
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 'Get your team's profile information' clearly states the action (Get) and resource (team's profile information), but it's somewhat vague about what specific profile information is retrieved. It doesn't differentiate from sibling tools like 'get_health' or 'get_detailed_health' which might also provide profile-related data. The purpose is understandable but lacks specificity.
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 no guidance on when to use this tool versus alternatives. With siblings like 'get_health', 'get_detailed_health', and 'update_profile', there's no indication of what makes this tool distinct or when it's the appropriate choice. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteC
Get a quote for a potential trade
| Name | Required | Description | Default |
|---|---|---|---|
| fromToken | Yes | Source token address | |
| toToken | Yes | Destination token address | |
| amount | Yes | Amount of fromToken to potentially trade | |
| fromChain | No | Optional blockchain type for source token | |
| toChain | No | Optional blockchain type for destination token | |
| fromSpecificChain | No | Optional specific chain for source token | |
| toSpecificChain | No | Optional specific chain for destination token |
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 states this gets a quote for a 'potential' trade, implying it's a read-only estimation, but doesn't specify if it's a simulation, whether it requires authentication, has rate limits, or what the output format might be. This leaves significant gaps for a tool with 7 parameters.
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 a single, efficient sentence with no wasted words. It's appropriately sized for a tool with a straightforward purpose, though it could benefit from additional context.
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 complexity (7 parameters, no annotations, no output schema), the description is insufficient. It doesn't explain what a 'quote' entails (e.g., exchange rate, fees, slippage), how results are returned, or error conditions. For a financial tool with multiple parameters, this leaves too much undefined.
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 no parameter-specific information beyond what's already in the schema (which has 100% coverage). It doesn't explain relationships between parameters (e.g., how 'fromChain' interacts with 'fromSpecificChain') or provide usage examples. With high schema coverage, the baseline is 3, but no extra value is added.
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 action ('Get a quote') and the resource ('for a potential trade'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'get_price' or 'execute_trade' that might also relate to trading operations, which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention that this is for pre-trade estimation (vs. 'execute_trade' for actual execution) or how it differs from price-related tools like 'get_price'. There's no context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_infoC
Get detailed information about a token
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token address | |
| chain | No | Optional blockchain type | |
| specificChain | No | Optional specific chain for EVM tokens |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but only states what the tool does, not how it behaves. It doesn't mention whether this is a read-only operation, what kind of information is returned, potential rate limits, authentication requirements, or error conditions. For a tool with 3 parameters and no annotation coverage, this is inadequate.
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 a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool with this level of complexity and front-loads the essential 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 has 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'detailed information' means in terms of return values, doesn't address behavioral aspects like read/write nature or error handling, and provides no context about when to use this versus sibling tools.
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?
With 100% schema description coverage, the input schema already documents all parameters thoroughly. The description doesn't add any meaningful context about parameter usage beyond what's in the schema. The baseline score of 3 reflects adequate but unenhanced parameter 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 verb 'Get' and the resource 'detailed information about a token', making the purpose immediately understandable. However, it doesn't differentiate this tool from potential siblings like 'get_price' or 'get_balances' that might also provide token-related information, which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. With siblings like 'get_price', 'get_balances', and 'get_portfolio' that might overlap with token information, there's no indication of what makes this tool distinct or when it should be preferred over those other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tradesC
Get trade history for your team
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of trades to retrieve (default: 20) | |
| offset | No | Offset for pagination | |
| token | No | Filter by token address | |
| chain | No | Filter by blockchain type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this requires authentication, what format the history returns, if there are rate limits, or how 'your team' is defined. The description states what it does but not how it behaves.
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 a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a straightforward retrieval tool.
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 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'trade history' includes, how results are structured, or any behavioral constraints. The agent would need to guess about authentication, return format, and team context.
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 100%, so the schema fully documents all 4 parameters. The description adds no parameter-specific information beyond implying trade history retrieval. This meets the baseline of 3 when schema coverage is high.
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 action ('Get') and resource ('trade history for your team'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like get_portfolio or get_balances, but the focus on trade history is specific enough for basic understanding.
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 no guidance on when to use this tool versus alternatives like get_portfolio (which might include trade data) or get_price_history (which tracks price rather than trades). There's no mention of prerequisites, context, or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_profileC
Update your team's profile information
| Name | Required | Description | Default |
|---|---|---|---|
| contactPerson | No | New contact person name | |
| metadata | No | Agent metadata with ref, description, and social information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation operation, the description doesn't specify permission requirements, whether changes are reversible, what happens to existing fields not mentioned, rate limits, or error conditions. For a mutation tool with zero annotation coverage, this is insufficient.
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 a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential 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?
For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what constitutes a successful update, what gets returned, error handling, or the relationship with the sibling 'get_profile' tool. The agent lacks sufficient context to use this tool effectively.
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 mentions 'profile information' which aligns with the two parameters (contactPerson and metadata), but adds no specific meaning beyond what the schema already provides. With 100% schema description coverage, the baseline score of 3 is appropriate since the schema fully documents parameters.
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 action ('Update') and resource ('your team's profile information'), providing specific verb+resource pairing. However, it doesn't distinguish this tool from its sibling 'get_profile' beyond the obvious update vs. get difference, missing explicit differentiation about scope or capabilities.
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 no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, appropriate contexts, or comparison with the sibling 'get_profile' tool. The agent receives no usage direction beyond the basic action.
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.
15 tool updates
- First observed
execute_trade - First observed
get_balances - First observed
get_competition_rules - First observed
get_competition_status - First observed
get_detailed_health - First observed
get_health - First observed
get_leaderboard - First observed
get_portfolio - First observed
get_price - First observed
get_price_history - First observed
get_profile - First observed
get_quote - First observed
get_token_info - First observed
get_trades - First observed
update_profile
TDQS
Scored across 15 tools
Most tools have distinct purposes, but there is some potential confusion between get_health and get_detailed_health, as both relate to health checks. Additionally, get_quote and execute_trade are closely related in the trading workflow, but their descriptions clarify that one is for quoting and the other for execution.
All tools follow a consistent verb_noun naming pattern, primarily using 'get_' for retrieval operations and 'execute_' or 'update_' for actions. This uniformity makes the tool set predictable and easy to navigate for an agent.
With 15 tools, the server is well-scoped for a trading simulator, covering essential functions like trading, portfolio management, competition details, and data retrieval. Each tool appears to serve a specific purpose without redundancy.
The tool set covers core trading operations (e.g., execute_trade, get_quote, get_balances) and competition features (e.g., get_leaderboard, get_competition_status), but lacks tools for modifying competition entries or managing tokens beyond retrieval. Minor gaps exist, but agents can likely work around them.
Maintenance
Related MCP Connectors
- FensoryOAuthcom.fensory
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
AlicenseAqualityFmaintenanceAn MCP server that enables Claude and Gemini CLI to interact with Hummingbot for automated cryptocurrency trading across multiple exchanges.1117 PyPI59Apache 2.0- AlicenseNot gradedqualityBmaintenanceAn MCP server that lets you talk to your AI trading assistant in plain English to research stocks, generate trade recommendations, manage a portfolio, and execute trades through natural language.MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides AI assistants like Claude with direct access to MetaAPI trading platform. Trade forex, stocks, and commodities through natural language conversations.1-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives Claude direct access to TradersPost webhook trading. Send trade signals, inspect strategy configs, query trade history, and monitor positions.MIT