Skip to main content
Glama

cancel_order

Cancel open cryptocurrency orders on the Zaif exchange using the specified order ID. Modify strategies, correct errors, or remove long-pending orders. Supports BTC/JPY, ETH/JPY, and XYM/JPY pairs.

Instructions

    未約定の暗号資産取引注文をキャンセルします。

    このツールは、既に発注済みで未約定(一部約定を含む)の注文をキャンセルするために使用します。
    注文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エラーが発生した場合
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
currency_pairNo
order_idYes

Implementation Reference

  • The main handler function for the 'cancel_order' MCP tool. It is decorated with @mcp.tool() to register it, performs auth check, and calls the underlying Zaif API.
    @mcp.tool()
    def cancel_order(
        order_id: int, currency_pair: SupportedPair = None
    ) -> CancelOrderResponse:
        """
        未約定の暗号資産取引注文をキャンセルします。
    
        このツールは、既に発注済みで未約定(一部約定を含む)の注文をキャンセルするために使用します。
        注文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エラーが発生した場合
        """
        if not api.trade.http.auth_provider:
            raise ValueError(
                "認証情報が設定されていません。APIキーとシークレットを.envファイルに設定してください。"
            )
    
        return api.trade.cancel_order(order_id, currency_pair)
  • Output schema definition: dataclass CancelOrderResponse, including from_dict and to_dict for serialization.
    class CancelOrderResponse:
        """
        注文キャンセル結果を表すデータクラス。
        cancel_orderの戻り値に対応します。
    
        Attributes:
            order_id: キャンセルした注文ID
            balances: キャンセル後の各通貨の残高情報
        """
    
        order_id: int
        balances: Dict[str, Decimal]
    
        @classmethod
        def from_dict(cls, data: Dict[str, Any]) -> "CancelOrderResponse":
            """
            APIレスポンスからCancelOrderResponseインスタンスを作成します。
    
            Args:
                data: APIレスポンスの辞書
    
            Returns:
                CancelOrderResponseインスタンス
            """
            balances = {k: Decimal(str(v)) for k, v in data.get("funds", {}).items()}
            return cls(order_id=int(data.get("order_id", 0)), balances=balances)
    
        def to_dict(self) -> Dict[str, Any]:
            """
            CancelOrderResponseインスタンスを辞書に変換します。
    
            Returns:
                APIレスポンス形式の辞書
            """
            return {
                "order_id": self.order_id,
                "funds": {k: str(v) for k, v in self.balances.items()},
            }
  • Registration of trade tools (including cancel_order) by calling register_trade_tools during server initialization.
    from zaifer_mcp.tools.trade import register_trade_tools
    from zaifer_mcp.tools.chart import register_chart_tools
    
    register_market_tools(mcp, zaif_api)
    register_account_tools(mcp, zaif_api)
    register_trade_tools(mcp, zaif_api)
  • Input schema: SupportedPair type definition, used for currency_pair parameter.
    SupportedPair = Literal["btc_jpy", "eth_jpy", "xym_jpy"]
  • Helper function: TradeApi.cancel_order method that makes the actual HTTP POST to Zaif API, called by the tool handler.
    def cancel_order(
        self, order_id: int, currency_pair: str = None, is_token: bool = None
    ) -> CancelOrderResponse:
        """
        注文をキャンセル
    
        Args:
            order_id: 注文ID
            currency_pair: 通貨ペア
            is_token: トークン種別(トークンの場合True)
    
        Returns:
            CancelOrderResponseオブジェクト
    
        Note:
            TODO: MCP利用者にis_tokenパラメータを意識させないように隠蔽する方法を検討する。
            将来的には通貨ペアやorder_idから自動的にトークン種別を判定する機能を実装するか、
            または内部的にAPIを呼び分けるなどの方法で対応する。
        """
        params = {"order_id": order_id}
    
        if currency_pair:
            params["currency_pair"] = currency_pair
    
        if is_token is not None:
            params["is_token"] = is_token
    
        params["method"] = "cancel_order"
        data = self.http.post(self.base_url, params)
        return CancelOrderResponse.from_dict(data)
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/curio184/zaifer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server