Skip to main content
Glama
zereight

Bithumb MCP Server

post_place

Place limit buy or sell orders on Bithumb cryptocurrency exchange by specifying currency, quantity, price, and order type.

Instructions

Place a limit order (buy/sell) (Private)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orderCurrencyYesCryptocurrency symbol (e.g. BTC, ETH)
unitsYesOrder quantity
priceYesOrder price
typeYesOrder type (bid or ask)

Implementation Reference

  • Core handler function for the 'post_place' tool. Prepares parameters and calls the Bithumb trade API's 'place' endpoint to submit a limit order.
    public async postPlace(
      orderCurrency: string,
      units: number,
      price: number,
      type: tradeType,
    ): Promise<IPostPlace> {
      const param = {
        order_currency: orderCurrency,
        units,
        price,
        type,
      };
      const res = <IPostPlace>await this.requestTrade('place', param);
      return res;
    }
  • src/index.ts:209-222 (registration)
    Tool registration in the MCP server's tools list, defining the name, description, and input schema for 'post_place'.
    {
      name: 'post_place',
      description: 'Place a limit order (buy/sell) (Private)',
      inputSchema: {
        type: 'object',
        properties: {
          orderCurrency: { type: 'string', description: 'Cryptocurrency symbol (e.g. BTC, ETH)' },
          units: { type: 'number', description: 'Order quantity' },
          price: { type: 'number', description: 'Order price' },
          type: { type: 'string', enum: ['bid', 'ask'], description: 'Order type (bid or ask)' }
        },
        required: ['orderCurrency', 'units', 'price', 'type']
      }
    },
  • src/index.ts:363-370 (registration)
    Dispatch logic in the CallToolRequest handler that maps the tool call to the bithumbApi.postPlace method.
    case 'post_place':
      result = await this.bithumbApi.postPlace(
        args.orderCurrency as string,
        args.units as number,
        args.price as number,
        args.type as tradeType // Cast to expected type
      );
      break;
  • TypeScript interface defining the response structure for the postPlace API call, including the order_id.
    export interface IPostPlace extends IBithumbResponse {
      order_id: string;
    }
Behavior2/5

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. It states this is a 'Private' operation, hinting at authentication needs, but doesn't specify required permissions, rate limits, execution guarantees, or what happens on success/failure. For a financial transaction tool with zero annotation coverage, this leaves critical behavioral aspects undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (6 words) and front-loaded with the core action. Every word earns its place, though the '(Private)' tag could be more informative. No wasted sentences, but could benefit from slightly more structure to separate purpose from behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a financial order placement tool with 4 required parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens after order placement, return values, error conditions, or how this integrates with the broader trading system shown in sibling tools. The '(Private)' hint is minimal compensation for missing critical context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema descriptions. It doesn't explain relationships between parameters (e.g., how price interacts with type) or provide usage examples. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Place a limit order') and resource (implied trading order), specifying it's for buy/sell operations. However, it doesn't distinguish itself from sibling tools like post_market_buy/sell or post_cancel, which are related order operations. The '(Private)' tag adds some context but doesn't fully differentiate purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 post_market_buy, post_market_sell, or post_cancel. It mentions 'limit order' but doesn't explain when a limit order is preferable to market orders or how it differs from other order-related tools in the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other 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/zereight/bithumb-mcp'

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