Zaifer-MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zaifer-MCPshow me the current price of Bitcoin in JPY"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zaifer-mcp
Zaif暗号資産取引所のAPIをModel Context Protocol (MCP)経由で利用可能にするPythonライブラリです。ClaudeなどのLLMアシスタントから自然言語でZaif APIの機能を直接呼び出せます。
⚠️ 重要な注意事項
本アプリケーションは非公式・非公認のサードパーティ製ツールです。 Zaif取引所および株式会社Zaifとは一切関係がありません。
Related MCP server: CCXT MCP Server
特徴
🤖 LLMフレンドリー: Claude、ChatGPTなどのLLMから自然言語で暗号資産取引機能を利用
🔒 セキュア: API認証が必要な操作は適切に保護され、公開情報は安全にアクセス可能
📊 包括的な機能: 市場情報、チャートデータ、取引、アカウント管理の全機能をサポート
🚀 高速: FastMCPフレームワークによる効率的な実装
🔌 柔軟な接続: STDIO(ローカル)とHTTP(リモート)の両方の通信方式をサポート
サポート通貨ペア
BTC/JPY (ビットコイン/日本円)
ETH/JPY (イーサリアム/日本円)
XYM/JPY (シンボル/日本円)
インストール
# リポジトリをクローン
git clone https://github.com/curio184/zaifer-mcp.git
cd zaifer-mcp
# パッケージをインストール
pip install -e .環境設定
zaifer-mcpはAPIキーなしでも市場情報の取得が可能です。Zaifの口座をお持ちでAPIキーを発行いただければ、残高確認や取引機能を含むすべての機能をご利用いただけます。
使用方法
Claude Desktopとの連携
# リポジトリをクローン
git clone https://github.com/curio184/zaifer-mcp.gitClaude Desktop(デスクトップ版)のMCP設定ファイル ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) または %APPDATA%\Claude\claude_desktop_config.json (Windows) に以下を設定:
{
"mcpServers": {
"zaifer-mcp": {
"command": "python",
"args": ["/path/to/zaifer-mcp/zaifer_mcp/__main__.py"],
"env": {
"ZAIF_API_KEY": "your_api_key_here",
"ZAIF_API_SECRET": "your_api_secret_here"
}
}
}
}APIキーなしで市場情報のみ利用する場合は、envセクションを省略できます。設定後、Claude Desktopを再起動すると、zaifer-mcpの機能が利用可能になります。
使用例
Claude での基本的な使用例
ユーザー: ビットコインの現在価格を教えてください
Claude: 現在のビットコイン(BTC/JPY)の価格情報をお調べします。
【BTC/JPY 価格情報】
- 現在価格: ¥14,500,000
- 24時間変動: +2.3%
- 高値: ¥14,520,000 / 安値: ¥14,380,000
- 出来高: 150.3 BTCClaude は get_ticker ツールを自動的に呼び出し、リアルタイムの市場データを取得して回答します。
開発者向け情報
開発環境のセットアップ、デバッグ方法、アーキテクチャの詳細についてはDEVELOPMENT.mdをご覧ください。
ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
著者
Yusuke Oya - curio@antique-cafe.net
関連リンク
免責事項
本ソフトウェアは暗号資産取引所のAPIを利用しますが、取引の結果について一切の責任を負いません。 本アプリケーションはZaif取引所の非公式・非公認のサードパーティ製ツールであり、Zaif取引所および株式会社Zaifによる保証はありません。 実際の取引を行う前に、必ず動作を十分に確認し、自己責任で利用してください。
Available Tools
9 toolscancel_orderA
未約定の暗号資産取引注文をキャンセルします。
このツールは、既に発注済みで未約定(一部約定を含む)の注文をキャンセルするために使用します。
注文IDを指定してキャンセルでき、任意で通貨ペアも指定できます。
使用例:
- 価格変動により注文戦略を変更したい場合
- 誤った注文をキャンセルしたい場合
- 長時間約定しない注文を取り消したい場合
注意: このツールを使用するには、環境変数にAPIキーとシークレットが設定されている必要があります。
Args:
order_id: キャンセルする注文のID(get_open_ordersで取得可能)
currency_pair: 通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
指定しない場合、システムは注文IDから自動的に判断します
Returns:
CancelOrderResponse: キャンセル結果情報
- order_id: キャンセルした注文ID
- balances: キャンセル後の各通貨の残高情報
Raises:
ValueError: 認証情報が設定されていない場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | No | ||
| order_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| balances | Yes | |
| order_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing authentication requirements, error conditions (ValueError for missing credentials or API errors), and the tool's behavior (cancels orders including partially executed ones, automatically determines currency pair if not specified). It doesn't mention rate limits or whether cancellation is reversible, but covers most critical 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 well-structured with clear sections (purpose, usage, prerequisites, parameters, returns, errors) and every sentence adds value. It could be slightly more concise by combining some of the use case examples, but overall it's efficiently organized with no wasted text.
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 this is a mutation tool with no annotations, 2 parameters (one optional), and an output schema, the description provides excellent context. It covers authentication needs, error conditions, parameter semantics, usage scenarios, and references the output structure (CancelOrderResponse with order_id and balances). The presence of an output schema means the description doesn't need to detail return values, which it appropriately references instead.
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 significant value beyond the input schema, which has 0% description coverage. It explains that 'order_id' can be obtained from 'get_open_orders', provides the meaning and format of 'currency_pair' values with Japanese translations, and clarifies that currency_pair is optional with system fallback behavior. This fully compensates for the schema's lack of 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 specific action ('cancel'), target resource ('unexecuted cryptocurrency trading orders'), and scope ('including partially executed orders'). It distinguishes from siblings like 'get_open_orders' (which lists orders) and 'place_order' (which creates orders) by focusing on cancellation of existing orders.
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 when to use this tool ('for orders that are already placed and unexecuted'), provides three concrete use cases (price changes, wrong orders, long-unfilled orders), and mentions prerequisites (API key/secret must be configured). It clearly differentiates from alternatives by specifying it works on orders obtained from 'get_open_orders'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_balanceA
アカウントの残高情報を取得します。
このツールは、取引前の残高確認や投資可能額の算出に使用します。
すべての通貨の残高を一度に取得し、利用可能な資金を確認できます。
使用例:
- 取引前に利用可能な資金を確認したい場合
- ポートフォリオの総資産価値を計算したい場合
- 各通貨の保有量を確認したい場合
- 投資可能額を把握したい場合
注意: このツールを使用するには、環境変数にAPIキーとシークレットが設定されている必要があります。
Returns:
AccountBalance: アカウント残高情報
- balances: 各通貨の残高情報(通貨コードをキーとする辞書)
- permissions: 利用権限情報(APIの各機能に対する権限を示す辞書)
Raises:
ValueError: 認証情報が設定されていない場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| balances | Yes | |
| permissions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing authentication requirements, error conditions (ValueError for missing credentials or API errors), and return structure. It mentions retrieving balances for all currencies at once and checking available funds, which adds useful behavioral context beyond basic functionality.
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-structured with clear sections (purpose, usage examples, prerequisites, returns, errors). The description is appropriately sized for a tool with no input parameters but significant behavioral context. Minor deduction for some redundancy in usage examples that could be 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?
Given the tool has no input parameters, an output schema exists, and no annotations are provided, the description is complete. It covers purpose, usage guidelines, prerequisites, return structure, and error conditions - everything needed for an agent to understand when and how 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 input schema has 0 parameters with 100% coverage, so baseline would be 4. The description appropriately doesn't discuss input parameters since none exist, focusing instead on output semantics and usage 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 tool's purpose with specific verbs ('取得します' - get/retrieve) and resource ('アカウントの残高情報' - account balance information). It distinguishes itself from siblings by focusing on account balance retrieval rather than order management, market data, or trading operations.
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 usage scenarios with four concrete examples (checking available funds before trading, calculating total portfolio value, checking currency holdings, understanding investable amounts). It also specifies prerequisites (API key and secret must be configured in environment variables).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_currency_pairsA
対応している通貨ペア情報を取得します。
取引可能な通貨ペアの詳細な制約情報を提供し、以下の用途で使用します:
- 注文前に最小数量・価格制約を確認したい場合
- 有効な注文パラメータを計算したい場合
- 通貨ペアの取引ルールを理解したい場合
使用例:
- ビットコインの最小注文数量を確認したい場合
- 価格の刻み幅に合わせて注文価格を調整したい場合
- 通貨ペアごとの制約の違いを比較したい場合
Returns:
list[CurrencyPair]: 通貨ペア情報のリスト
- currency_pair: 通貨ペア識別子(例: 'btc_jpy')
- min_quantity: 最小注文数量
- quantity_step: 注文数量の刻み幅
- min_price: 最小注文価格
- price_step: 注文価格の刻み幅
- price_precision: 価格表示の小数点桁数
- display_name: 表示用名称(例: 'ビットコイン/円')
Raises:
ValueError: APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | 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 disclosure. It does well by specifying the return format (list of CurrencyPair objects with detailed fields), mentioning potential errors (ValueError for API errors), and describing the type of information provided (constraints, trading rules). It doesn't mention rate limits, authentication requirements, or pagination behavior, but provides substantial behavioral context.
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, use cases, examples, returns, raises), but it's somewhat verbose. The Japanese text could be more concise while maintaining clarity. Each sentence adds value, but there's some redundancy between the use cases and examples sections.
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 (read-only data retrieval with detailed output), the description is complete. It explains what the tool does, when to use it, what it returns (with detailed field descriptions), and potential errors. With an output schema available, the description appropriately focuses on semantics rather than repeating structured return format details.
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 with 100% schema description coverage, so the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on the tool's purpose and output. This is efficient and correct for a parameterless tool.
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: '対応している通貨ペア情報を取得します' (get supported currency pair information). It specifies the resource (currency pairs) and the action (get information). However, it doesn't explicitly differentiate from sibling tools like get_ticker or get_market_depth, which also provide market-related data.
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 excellent usage guidelines with three specific use cases: checking constraints before orders, calculating valid order parameters, and understanding trading rules. It also includes concrete examples like checking Bitcoin minimum order quantity and adjusting prices to tick sizes. This gives clear context 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.
get_market_depthA
指定した通貨ペアの板情報を取得します。
市場全体の売買注文状況を表示し、あなた個人の注文一覧(get_open_orders)とは異なります。
全市場参加者の注文が価格順に並んだ情報で、以下の用途で使用します:
- 市場の流動性と売買圧力を分析したい場合
- 大量注文前に市場の深さを確認したい場合
- サポート・レジスタンスレベルを特定したい場合
使用例:
- 大きな注文を出す前に市場の流動性を確認したい場合
- 現在のビッド・アスクスプレッドを詳細に分析したい場合
- 特定価格帯での注文量を確認したい場合
Args:
currency_pair: 通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
Returns:
OrderBook: 市場全体の板情報
- asks: 売り注文一覧(price・quantity)
- bids: 買い注文一覧(price・quantity)
Raises:
ValueError: 通貨ペアが無効な場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| asks | Yes | |
| bids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well. It explains this shows market-wide data (not personal), describes the return structure (asks/bids with price/quantity), mentions error conditions (invalid currency pairs, API errors), and implies this is a read-only operation (no destructive language). It doesn't mention rate limits or authentication requirements, but provides substantial behavioral context.
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 statement, differentiation from sibling tool, usage scenarios, examples, and formal parameter/return documentation. While comprehensive, some redundancy exists between usage scenarios and examples. Every sentence adds value, but it could be slightly more concise by integrating scenarios and examples.
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 read operation with an output schema, this description is exceptionally complete. It covers purpose, differentiation from siblings, multiple usage contexts, parameter semantics, return structure, and error conditions. The output schema existence means the description doesn't need to detail return values, and it appropriately focuses on when and why to use the 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?
The schema has 0% description coverage, so the description must fully compensate. It provides a dedicated 'Args' section explaining the single parameter 'currency_pair' with specific examples ('btc_jpy', 'eth_jpy', 'xym_jpy') and their meanings. This adds significant value beyond what the bare enum in the schema provides by explaining what these codes represent.
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: '指定した通貨ペアの板情報を取得します' (get order book information for specified currency pairs). It explicitly distinguishes this from the sibling tool 'get_open_orders' by noting it shows market-wide order information rather than personal orders. The verb+resource combination is specific and 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 provides excellent usage guidance with three specific scenarios when to use this tool: analyzing market liquidity and buying/selling pressure, checking market depth before large orders, and identifying support/resistance levels. It also explicitly distinguishes when NOT to use it (for personal orders, directing to 'get_open_orders' instead). Three usage examples further clarify appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_ordersA
現在有効な(未約定の)暗号資産取引注文一覧を取得します。
このツールは、現在板に出ている未約定注文(一部約定を含む)の一覧を確認するために使用します。
特定の通貨ペアでフィルタリングすることも、すべての通貨ペアの注文を取得することもできます。
使用例:
- 現在の注文状況を確認したい場合
- キャンセルすべき注文を特定したい場合
- 注文戦略の進捗を確認したい場合
注意: このツールを使用するには、環境変数にAPIキーとシークレットが設定されている必要があります。
Args:
currency_pair: 通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
指定しない場合、すべての通貨ペアの注文が返されます
Returns:
OpenOrderList: 未約定注文一覧
- open_orders: 注文IDをキーとする注文情報の辞書
- currency_pair: 通貨ペア
- order_type: 注文タイプ('bid': 買い、'ask': 売り)
- price: 注文価格
- quantity: 注文数量
- order_time: 注文日時のISO 8601形式の文字列(例: '2023-05-24T15:30:45+09:00')
Raises:
ValueError: 認証情報が設定されていない場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| open_orders | 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 disclosure. It effectively describes key behaviors: it's a read-only operation (implied by '取得します'), requires API authentication ('環境変数にAPIキーとシークレットが設定されている必要があります'), and can raise errors for authentication or API issues. It also clarifies the scope ('一部約定を含む' - includes partially filled orders). The main gap is lack of rate limit or pagination information.
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, usage guidelines, authentication requirements, parameters, returns, errors) and uses bullet points effectively. While comprehensive, it could be slightly more concise - some information in the Returns section could potentially be moved to an output schema. However, every sentence adds value and the structure helps with readability.
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 (1 parameter, read operation), the description provides excellent contextual completeness. It covers purpose, usage scenarios, authentication requirements, parameter semantics, return format (with detailed field descriptions), and error conditions. The presence of an output schema would reduce the need for the Returns section, but the current description stands well on its own as a complete guide 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 description adds substantial semantic value beyond the input schema. While the schema only shows currency_pair as an enum with three values, the description explains: 1) the parameter is optional ('指定しない場合、すべての通貨ペアの注文が返されます'), 2) provides human-readable labels for each enum value, and 3) clarifies the default behavior when not specified. With 0% schema description coverage, the description fully compensates with clear 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 tool's purpose: '現在有効な(未約定の)暗号資産取引注文一覧を取得します' (Get a list of currently active/unfilled cryptocurrency trading orders). It specifies the verb '取得します' (get/retrieve) and the resource '注文一覧' (order list), and distinguishes it from siblings like cancel_order (which modifies orders) and place_order (which creates orders).
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 usage guidelines with three specific use cases ('使用例') and distinguishes when to use this tool versus alternatives. It mentions this is for viewing unfilled orders (including partially filled ones), while siblings like cancel_order are for modifying orders and place_order is for creating new orders. The guidance is comprehensive and practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_chartA
指定期間の価格チャートデータを取得し、投資判断やトレンド分析に活用します。
このツールは以下の用途で使用されます:
- 価格トレンドの分析とパターン認識
- 買い時・売り時の判断材料として
- サポート・レジスタンスレベルの特定
- テクニカル分析(移動平均、RSI等の計算基礎データ)
- 価格変動の要因分析
期間指定のガイドライン:
- 1分足・5分足: 数時間~1日分のデータが適切です
- 1時間足: 1週間~1ヶ月分のデータが適切です
- 日足: 1ヶ月~6ヶ月分のデータが適切です
- 週足: 6ヶ月~2年分のデータが適切です
注意: 極端に長い期間(例: 1分足で1年分)を指定すると、
データ量が膨大になり処理に時間がかかる場合があります。
Args:
currency_pair: 通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
timeframe: 時間足('1': 1分足、'5': 5分足、'15': 15分足、'30': 30分足、'60': 1時間足、
'240': 4時間足、'480': 8時間足、'720': 12時間足、'D': 日足、'W': 週足)
start_date: 開始日時(ISO形式: 'YYYY-MM-DDTHH:MM:SS')
end_date: 終了日時(ISO形式: 'YYYY-MM-DDTHH:MM:SS')
Returns:
PriceChartData: 価格チャートデータ
- currency_pair: 通貨ペア
- timeframe: 時間足の表示名(例: '1時間足')
- start_date: 開始日時(ISO 8601形式)
- end_date: 終了日時(ISO 8601形式)
- candlesticks: ローソク足データのリスト(時系列順)
- timestamp: ISO 8601形式の日時文字列
- open_price: 始値
- high_price: 高値
- low_price: 安値
- close_price: 終値
- volume: 出来高
- data_count: データ件数
Raises:
ValueError: 日付形式が不正な場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | Yes | ||
| end_date | Yes | ||
| start_date | Yes | ||
| timeframe | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| end_date | Yes | |
| timeframe | Yes | |
| data_count | Yes | |
| start_date | Yes | |
| candlesticks | Yes | |
| currency_pair | 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 disclosure. It effectively describes the tool's behavior: it retrieves data (not modifies), includes performance warnings about long periods causing processing delays, and specifies error conditions (ValueError for invalid dates or API errors). However, it doesn't mention rate limits, authentication requirements, or data freshness, leaving some gaps.
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, use cases, guidelines, parameters, returns, errors) and uses bullet points for readability. While comprehensive, it's slightly verbose; some redundancy exists (e.g., repeating timeframe details in guidelines and Args). Every sentence adds value, but it could be more front-loaded.
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 (4 parameters, 0% schema coverage, no annotations) and the presence of an output schema, the description is highly complete. It covers purpose, usage, behavioral traits, parameter details, return structure (though output schema handles this), and error conditions. No significant gaps remain for effective tool 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 description coverage is 0%, so the description must fully compensate. It provides comprehensive parameter semantics: currency_pair enum values with Japanese translations, timeframe enum values with explanations (e.g., '1': 1分足), and date format specifications (ISO format). This adds significant meaning beyond the bare 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?
The description clearly states the tool's purpose: '指定期間の価格チャートデータを取得し、投資判断やトレンド分析に活用します' (retrieves price chart data for a specified period for investment decisions and trend analysis). It specifies both the action (retrieve) and resource (price chart data), and distinguishes itself from siblings like get_ticker (single price) or get_market_depth (order book).
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 usage guidelines with a detailed list of use cases (e.g., trend analysis, support/resistance identification) and timeframe-specific recommendations (e.g., '1分足・5分足: 数時間~1日分のデータが適切です'). It also includes warnings about performance implications for extreme date ranges, offering clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tickerA
指定した通貨ペアのティッカー情報を取得します。
現在の市場価格統計を提供し、以下の用途で使用します:
- 現在の市場価格と24時間の価格変動を確認したい場合
- 売買注文の価格設定の参考にしたい場合
- 市場の活発さ(取引量)を把握したい場合
使用例:
- ビットコインの現在価格を確認したい場合
- 最適な注文価格を決定するため最良売買価格を確認したい場合
- 24時間の価格レンジを分析したい場合
Args:
currency_pair: 通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
Returns:
Ticker: ティッカー情報
- last_price: 最終取引価格
- high_price: 24時間最高値
- low_price: 24時間最安値
- ask_price: 最良売り価格
- bid_price: 最良買い価格
- volume: 24時間取引量
Raises:
ValueError: 通貨ペアが無効な場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| volume | Yes | |
| ask_price | Yes | |
| bid_price | Yes | |
| low_price | Yes | |
| high_price | Yes | |
| last_price | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing the tool's behavior: it provides current market price statistics, specifies what data is returned, mentions potential errors (ValueError for invalid currency pairs or API errors), and describes the return structure. It doesn't mention rate limits, authentication requirements, or data freshness, but provides substantial behavioral context for a read-only data retrieval 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 well-structured with clear sections (purpose, usage scenarios, examples, Args, Returns, Raises) and every sentence adds value. It could be slightly more concise by combining some bullet points, but the information density is high and the structure helps with comprehension. No wasted sentences 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?
Given the tool's moderate complexity (single parameter, read-only data retrieval), no annotations, and the presence of an output schema, the description provides excellent completeness. It covers purpose, usage guidelines, parameter details, return value structure, and error conditions. The output schema existence means the description doesn't need to fully document return values, but it still provides helpful semantic context about what each field represents.
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 0% description coverage, so the description must compensate fully. It provides excellent parameter semantics: explains what 'currency_pair' represents, lists all valid enum values with clear explanations ('btc_jpy': Bitcoin/Yen, etc.), and provides the parameter in both the Args section and implicitly through usage examples. This completely compensates for the schema's lack of 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 with specific verb ('取得します' - get/retrieve) and resource ('ティッカー情報' - ticker information). It distinguishes from siblings by focusing specifically on current market price statistics rather than order management (cancel_order, place_order), account information (get_account_balance), or other market data (get_market_depth, get_price_chart).
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 usage scenarios with bullet points detailing when to use this tool: checking current market prices and 24-hour price changes, reference for order pricing, and understanding market activity. It includes concrete examples (checking Bitcoin price, determining optimal order prices, analyzing 24-hour price ranges) that clearly differentiate when this tool is appropriate versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_executionsA
あなたのアカウントで約定(成立)した取引履歴を取得します。
このツールは、実際に成立した売買取引の記録を確認するために使用します。
特定の通貨ペアだけの履歴を見たり、取得件数や期間を指定して絞り込んだりできます。
使用例:
- 過去1ヶ月の取引履歴を確認して収益を計算したい場合
- ビットコイン取引だけを分析したい場合
- 最近の20件の取引を確認して取引戦略の成果を評価したい場合
- 税金申告のために年間の取引記録を取得したい場合
注意: このツールを使用するには、環境変数にAPIキーとシークレットが設定されている必要があります。
Args:
currency_pair: 取引通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
指定しない場合、すべての通貨ペアの取引履歴が返されます
limit: 取得する履歴の最大件数(例: 10, 20, 50)
start_date: この日付以降の取引を取得(例: '2023-01-01')
end_date: この日付以前の取引を取得(例: '2023-12-31')
Returns:
TradeExecutionList: 約定済み取引履歴
- executions: 約定済み取引のリスト(新しい順)
- execution_id: 取引ID(約定ID)
- currency_pair: 通貨ペア(例: 'btc_jpy')
- trade_side: 取引であなたが行った行動('buy': 買い、'sell': 売り、'self': 自己取引)
- market_role: 取引における役割('maker': 注文を出して待っていた側、'taker': 即時約定した側、'both': 自己取引の場合)
- price: 約定価格(日本円)
- quantity: 約定数量(暗号資産の量)
- fee_amount: 支払った手数料の金額(日本円)
- execution_time: 約定日時(ISO 8601形式の文字列、例: '2023-05-24T15:30:45+09:00')
Raises:
ValueError: 認証情報が設定されていない場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | No | ||
| end_date | No | ||
| limit | No | ||
| start_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| executions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well. It discloses authentication requirements (API key/secret), error conditions (ValueError for missing auth or API errors), and return behavior (newest-first ordering in '新しい順'). However, it doesn't mention rate limits, pagination, or whether this is a read-only operation (though implied by '取得'). For a tool with no annotations, this is strong 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 purpose statement, usage guidelines, examples, prerequisites, and parameter/return documentation. Every section earns its place. However, the Japanese text is somewhat verbose (e.g., detailed Returns section that duplicates output schema info). It could be more concise by relying more on the output schema, but the information density is high.
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 4 parameters with 0% schema coverage, no annotations, but with an output schema, the description is highly complete. It covers purpose, usage, prerequisites, parameter semantics, return structure (even though output schema exists), and error conditions. The Japanese examples and explanations provide rich context for an AI agent to understand when and how 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 schema has 0% description coverage (only titles), so the description must compensate fully. It provides detailed semantics for all 4 parameters: currency_pair (with enum values explained in Japanese), limit (with examples), start_date/end_date (format examples and temporal logic). The '指定しない場合' (if not specified) clauses explain default behaviors. This adds substantial value beyond the bare 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?
The description clearly states the tool's purpose: '取得します' (retrieve) for '約定(成立)した取引履歴' (executed trade history) from 'あなたのアカウント' (your account). It distinguishes from siblings like get_open_orders (pending orders) and get_ticker (market prices) by focusing specifically on historical executed trades. The Japanese text is precise and 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 provides explicit usage scenarios with four concrete examples (e.g., profit calculation, Bitcoin-only analysis, recent 20 trades, tax reporting). It also specifies when NOT to use it by mentioning prerequisites: '環境変数にAPIキーとシークレットが設定されている必要があります' (API key and secret must be set in environment variables). This gives clear context for when the tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_orderA
暗号資産の売買注文を発注します。
このツールは、指定した通貨ペアで新規の売買注文を市場に出すために使用します。
価格と数量を指定して、指値注文を出すことができます。
使用例:
- ビットコインを指定価格で購入したい場合
- イーサリアムを売却して利益を確定したい場合
- 特定の価格で指値注文を出したい場合
注意: このツールを使用するには、環境変数にAPIキーとシークレットが設定されている必要があります。
Args:
currency_pair: 取引する通貨ペア('btc_jpy': ビットコイン/円、'eth_jpy': イーサリアム/円、'xym_jpy': シンボル/円)
order_type: 注文タイプ('bid': 買い注文、'ask': 売り注文)
price: 注文価格(日本円)- 指値注文の場合の1単位あたりの価格
quantity: 注文数量 - 売買する暗号資産の量(例: ビットコインの場合は0.01BTCなど)
Returns:
OrderResponse: 注文結果情報
- filled_amount: 即時約定した数量
- unfilled_amount: 未約定の残り数量
- order_id: 注文ID(全約定の場合は0)
- balances: 注文後の各通貨の残高情報
Raises:
ValueError: 認証情報が設定されていない場合や、APIエラーが発生した場合
| Name | Required | Description | Default |
|---|---|---|---|
| currency_pair | Yes | ||
| order_type | Yes | ||
| price | Yes | ||
| quantity | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| balances | Yes | |
| order_id | Yes | |
| filled_amount | Yes | |
| unfilled_amount | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well. It discloses authentication requirements ('APIキーとシークレットが設定されている必要があります'), indicates this is a market-facing order placement tool, and mentions potential errors (ValueError for authentication/API issues). It could improve by mentioning rate limits or order confirmation timing.
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 purpose statement, usage context, examples, prerequisites, and parameter/return documentation. While comprehensive, some sections like the usage examples could be more concise. Overall, most sentences earn their place by adding meaningful 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 this is a complex order placement tool with 4 parameters, no annotations, and an output schema, the description is complete. It covers purpose, usage, prerequisites, parameter semantics, return values (OrderResponse details), and potential errors. The output schema handles return structure, so the description appropriately focuses on behavioral 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?
The description adds significant value beyond the input schema, which has 0% description coverage. It explains each parameter's meaning: currency_pair examples with translations, order_type meanings ('bid'=buy, 'ask'=sell), price context (Japanese yen per unit for limit orders), and quantity examples (e.g., 0.01BTC). This fully compensates for the schema's lack of 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: '暗号資産の売買注文を発注します' (place buy/sell orders for cryptocurrency). It specifies the action (place orders) and resource (cryptocurrency), distinguishing it from siblings like cancel_order (cancel orders) or get_account_balance (retrieve balances).
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 clear context for when to use this tool: '新規の売買注文を市場に出すために使用します' (to place new buy/sell orders to the market) and gives usage examples for buying Bitcoin, selling Ethereum, and placing limit orders. However, it doesn't explicitly state when NOT to use it or mention alternatives like market orders if available.
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.
9 tool updates
v1.0.0- First observed
cancel_order - First observed
get_account_balance - First observed
get_currency_pairs - First observed
get_market_depth - First observed
get_open_orders - First observed
get_price_chart - First observed
get_ticker - First observed
get_trade_executions - First observed
place_order
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose with no overlap. For example, get_account_balance retrieves account balances, get_open_orders lists active orders, place_order creates new orders, and cancel_order cancels existing ones. The descriptions clearly differentiate market data tools (get_ticker, get_market_depth, get_price_chart) from account management tools.
All tools follow a consistent verb_noun pattern using snake_case. The pattern is uniform: get_account_balance, get_currency_pairs, get_market_depth, get_open_orders, get_price_chart, get_ticker, get_trade_executions, place_order, cancel_order. Every tool name clearly indicates its action and target resource.
With 9 tools, this server is well-scoped for a cryptocurrency trading API. It covers essential operations: account information (balance), market data (ticker, depth, chart, currency pairs), order management (place, cancel, open orders), and trade history. Each tool serves a clear purpose without redundancy.
The tool set provides complete coverage for cryptocurrency trading. It includes account balance retrieval, market data access (current prices, order book, historical charts), order lifecycle management (place, view open orders, cancel), and trade history. No obvious gaps exist for core trading workflows.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
Crypto market signals, technical indicators, and sentiment analysis for AI agents.
- Era ContextOAuthapp.era
Personal finance, bank account, and shared memory connector for Claude, ChatGPT, Gemini Spark & more
OpenAI-compatible LLM MCP (7 tools); chat via balance key or x402 USDC on Base
Related MCP Servers
- AlicenseAqualityFmaintenanceProvides real-time and historical cryptocurrency market data through integration with major exchanges. This server enables LLMs like Claude to fetch current prices, analyze market trends, and access detailed trading information.761MIT
- AlicenseBqualityDmaintenanceA server that allows AI models to interact with cryptocurrency exchange APIs through the Model Context Protocol, providing access to over 100 exchanges and their trading capabilities.2019693MIT
- AlicenseBqualityCmaintenanceTransforms AI assistants into autonomous crypto trading agents with real-time market analysis, portfolio management, and trade execution across 17+ blockchains.321554MIT
- FlicenseCqualityDmaintenanceEnables cryptocurrency trading on Bybit exchange through comprehensive market data access, account management, and automated trading operations. Features smart position validation, trailing stop losses, and risk management tools with demo mode support for safe testing.21-