BitOasis MCP Server
OfficialClick 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., "@BitOasis MCP ServerWhat's the current price of BTC-AED?"
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.
BitOasis MCP Server
An MCP (Model Context Protocol) server that exposes the BitOasis cryptocurrency exchange API as tools for AI assistants.
Quick Start
Prerequisites
A verified BitOasis account with an API token (generate one at Settings > Security > Token Management)
Install via uvx (recommended)
Add to your MCP client config (Claude Desktop, VS Code, Cursor, etc.):
{
"mcpServers": {
"bitoasis": {
"command": "uvx",
"args": ["bitoasis-mcp"],
"env": {
"BITOASIS_API_KEY": "your-api-token-here"
}
}
}
}That's it — restart your MCP client and you're ready to go.
Remote server (no install needed)
If your team hosts the BitOasis MCP server, just add the URL — nothing to install:
{
"mcpServers": {
"bitoasis": {
"url": "https://mcp.bitoasis.net/sse",
"headers": {
"Authorization": "Bearer your-api-token-here"
}
}
}
}Install via Docker
{
"mcpServers": {
"bitoasis": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "BITOASIS_API_KEY", "bitoasis-mcp"],
"env": {
"BITOASIS_API_KEY": "your-api-token-here"
}
}
}
}Related MCP server: MAX Exchange MCP Server
Available Tools
Market Data
get_markets — List all tokens and trading pairs
get_ticker — Current price for a pair (e.g.
BTC-AED)get_order_book — Bids and asks for a pair
get_trades — Recent public trade history
Account
get_balances — Your balances across all currencies
get_banks — Your registered bank accounts
Orders
get_orders — List orders for a pair (filter by OPEN/DONE/CANCELED)
get_order — Order details by ID
place_order — Place a limit, market, stop, or stop_limit order
cancel_order — Cancel an open order
Deposits
get_coin_deposits / get_coin_deposit — Crypto deposit history/details
new_coin_deposit_address — Generate a deposit address
get_fiat_deposits / get_fiat_deposit — Fiat deposit history/details
Withdrawals
get_coin_withdrawals / get_coin_withdrawal — Crypto withdrawal history/details
new_coin_withdrawal — Withdraw crypto to an external address
get_coin_withdrawal_fees — Withdrawal fees per currency
get_fiat_withdrawals / get_fiat_withdrawal — Fiat withdrawal history/details
new_fiat_withdrawal — Withdraw fiat to a registered bank
cancel_fiat_withdrawal — Cancel a pending fiat withdrawal
Example Prompts
"What's the current price of BTC-AED?"
"Show my open orders for ETH-AED"
"Place a SOL-AED limit buy order: 2 SOL at 1000 AED"
"What are my balances?"
Development
git clone https://github.com/bit-oasis/bitoasis-mcp.git
cd bitoasis-mcp
uv syncRun from source:
{
"mcpServers": {
"bitoasis": {
"command": "uv",
"args": ["run", "--directory", "/path/to/bitoasis-mcp", "bitoasis-mcp"],
"env": {
"BITOASIS_API_KEY": "your-api-token-here"
}
}
}
}License
MIT
Available Tools
23 toolscancel_fiat_withdrawalB
Cancel a pending fiat withdrawal.
Args: withdrawal_id: The withdrawal ID to cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| withdrawal_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden for behavioral transparency. It implies a destructive/mutative action but does not disclose side effects, approval requirements, idempotency, or error scenarios (e.g., what happens if withdrawal is already processed).
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 (one sentence plus args) with no redundant information. However, it may be too sparse; including a brief note on behavior (e.g., only for pending withdrawals) could improve it without adding much length.
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 an output schema, the description does not explain the return value or success/failure indicators. It also omits the prerequisite that the withdrawal must be in 'pending' status. The output schema exists but its contents are not described, leaving the agent guessing about the response.
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 parameter meaning relies entirely on the description. It states 'withdrawal_id: The withdrawal ID to cancel', which adds basic usage context beyond the schema's type and name, but lacks details on source of the ID, format constraints, or validation rules.
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 'Cancel' and the resource 'a pending fiat withdrawal', specifying the required state. It distinguishes itself from sibling tools like 'cancel_order' by focusing on fiat withdrawals rather than 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?
No guidance is provided on when to use this tool versus alternatives like 'cancel_order'. It does not mention prerequisites (e.g., withdrawal must be pending) or exclusions (e.g., cannot cancel processed withdrawals).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_orderC
Cancel an open order.
Args: order_id: The ID of the order to cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden but only says 'Cancel an open order.' It does not disclose irreversibility, side effects, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single line and an Args section. It is well-structured but could be more informative while remaining brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, existence of an output schema, and many sibling tools, the description lacks context on cancellation outcomes, errors, or constraints.
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 explains 'order_id' as 'The ID of the order to cancel,' which adds minimal value beyond the schema's title. With 0% schema coverage, it should provide more detail like validation or source.
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 'Cancel an open order,' which is a specific verb-resource combination. It is distinct from siblings like 'place_order' or 'get_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?
No guidance on when to use this tool versus alternatives, such as when an order can be cancelled or prerequisites (e.g., order status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balancesA
Get the user's account balances across all currencies.
Returns a mapping of currency symbol to balance amount.
| 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?
No annotations are provided, so the description carries the burden. It describes the output but does not mention safety (non-destructive), authentication needs, or potential latency. The description is adequate but not rich in 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 very concise: two sentences that clearly convey purpose and output. Every sentence is necessary and there is no wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema exists, the description provides the essential information. It could optionally mention that balances are for the authenticated user, but this is implied. Overall, it is sufficient for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the schema coverage is 100%. The description adds value beyond the schema by explaining the return format (mapping of currency symbol to balance), which is helpful for an agent.
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 retrieves account balances across all currencies, specifying the output as a mapping of currency symbol to balance amount. This distinguishes it from sibling tools like get_banks or get_order_book, which serve different purposes.
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 explicit guidance is given on when to use this tool versus alternatives. However, the tool's purpose is straightforward and it does not overlap with any sibling, so usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_banksA
Get the list of bank accounts the user has registered on BitOasis.
| 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?
No annotations provided. The description only states it retrieves data (read-only) but omits details like authentication requirements, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, conveys the core functionality efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an existing output schema (not shown), the description is minimally sufficient. It could mention authentication or context, but overall adequate for a simple list retrieval.
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?
No parameters exist, and schema description coverage is 100%. Baseline score of 4 is appropriate as the description adds no extra parameter info.
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', the resource 'list of bank accounts', and the context 'registered on BitOasis'. It is specific and distinct from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. While its purpose is clear, the description does not mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_depositB
Get details of a specific coin deposit.
Args: deposit_id: The deposit ID.
| Name | Required | Description | Default |
|---|---|---|---|
| deposit_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states 'Get details' without disclosing behavioral traits such as whether the operation is read-only, any authorization needs, or what constitutes a valid deposit ID. With no annotations, the description carries the full burden but fails to provide sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. The 'Args:' section is clear, though minimal. It earns a high score for brevity but loses a point for lacking additional helpful structure.
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 (one parameter, output schema exists), the description is minimally adequate. It states the action and parameter, but misses contextual details like the expected format of the deposit ID or any side effects. The output schema likely fills in return value 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?
With 0% schema description coverage, the description must compensate but only repeats the parameter name 'deposit_id' and says 'The deposit ID.' This adds no meaning beyond the parameter name or title in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get details' and the resource 'specific coin deposit'. It effectively distinguishes from the sibling tool 'get_coin_deposits' (plural), which would list deposits, by indicating this tool retrieves a single deposit.
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 explicit guidance on when to use this tool versus alternatives (e.g., get_coin_deposits) or when not to use it. No context on prerequisites or conditions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_depositsA
Get deposit history for a specific cryptocurrency.
Args: currency: Crypto symbol, e.g. "BTC", "ETH". offset: Pagination offset. limit: Max results (up to 1000). from_date: Only return deposits from this date (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | ||
| offset | No | ||
| limit | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It implies read-only but doesn't mention side effects, auth needs, or error handling. Lacks detail on pagination behavior beyond 'up to 1000'.
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?
Concise and well-structured with clear 'Args' list. No redundant sentences; every line adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, description covers purpose and parameters well. Lacks usage guidelines and some behavioral context, but is mostly complete for a list endpoint.
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 has 0% coverage, but description explains all 4 parameters: currency with example, offset/pagination, limit max 1000, and from_date format YYYY-MM-DD. Adds essential meaning beyond 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 'Get deposit history for a specific cryptocurrency' with verb 'get' and resource 'deposit history', plus specifies the currency. It distinguishes from sibling 'get_coin_deposit' (singular) by implying a 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?
No explicit guidance on when to use this tool vs alternatives (like 'get_coin_deposit' for a single deposit). No context on prerequisites or limitations beyond what's in parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_withdrawalB
Get details of a specific coin withdrawal.
Args: withdrawal_id: The withdrawal ID.
| Name | Required | Description | Default |
|---|---|---|---|
| withdrawal_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It only states 'Get details' without mentioning side effects, authentication, error handling, or that it's a read-only operation.
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 very short (two sentences including an Args list). Every word is functional, no fluff. Could be slightly more concise by removing the Args list format, but it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return details are not needed. However, the description lacks context about related tools, error conditions, or what 'details' includes. It is adequate for a simple retrieval tool but not fully comprehensive.
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, but the description lists the parameter 'withdrawal_id' as 'The withdrawal ID.' This adds minimal meaning beyond the parameter name. The description partially compensates for the lack of schema descriptions, but does not provide additional constraints or format 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 purpose: 'Get details of a specific coin withdrawal.' It uses a specific verb and resource, and distinguishes from the sibling tool 'get_coin_withdrawals' which lists all withdrawals.
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 (e.g., when to use get_coin_withdrawal vs get_coin_withdrawals). No prerequisites or context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_withdrawal_feesB
Get withdrawal fees for all supported cryptocurrencies.
| 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?
No annotations are provided, so the description carries full burden for behavioral disclosure. It offers no information about side effects, authentication requirements, rate limits, or response characteristics beyond the bare minimum.
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, concise sentence without unnecessary words. It is front-loaded and efficient, though it could be slightly expanded with usage context without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (no parameters) and has an output schema, so return values are covered. However, given the many sibling tools (e.g., get_coin_withdrawal, get_fiat_withdrawal), the description lacks context on when to use this specific tool, making it less complete for an 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 tool has zero parameters, and the schema coverage is 100% vacuously. With no parameters to document, the description does not need to add parameter semantics. A score of 4 is appropriate as it adds no confusion.
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 'Get withdrawal fees for all supported cryptocurrencies,' specifying the verb 'get' and the resource 'withdrawal fees' with a defined scope. This distinguishes it from sibling tools like get_coin_withdrawal (specific withdrawal) and get_coin_withdrawals (list of withdrawals).
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 on when to use this tool versus alternatives. Given the large number of sibling tools (e.g., get_coin_withdrawal, get_coin_deposits), the description should provide context on appropriate usage scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coin_withdrawalsA
Get withdrawal history for a specific cryptocurrency.
Args: currency: Crypto symbol, e.g. "BTC", "ETH". offset: Pagination offset. limit: Max results (up to 1000). from_date: Only return withdrawals from this date (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | ||
| offset | No | ||
| limit | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 specifies that limit is 'up to 1000' and from_date format, but lacks details on pagination behavior (e.g., ordering, default offset, whether results are sorted) or read-only safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 5 lines, no unnecessary words, and a clear argument list. However, it could be slightly more structured (e.g., separating description from args).
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 4 parameters and existing output schema, the description covers input meaning adequately. It does not explain return values or pagination metadata, but the output schema handles the return structure. Minor gaps remain in pagination behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates. It explains all 4 parameters: currency with example, offset as pagination, limit with max, and from_date with format. This adds significant meaning beyond the schema's types and defaults.
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 'Get withdrawal history for a specific cryptocurrency.' This distinguishes it from siblings like 'get_coin_withdrawal' (single withdrawal) and 'get_fiat_withdrawals' (fiat).
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 parameter details but no explicit guidance on when to use vs alternatives, such as 'get_coin_withdrawal' for individual withdrawals or 'get_fiat_withdrawals' for fiat. Usage context is implied by the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiat_depositC
Get details of a specific fiat deposit.
Args: deposit_id: The deposit ID.
| Name | Required | Description | Default |
|---|---|---|---|
| deposit_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only states 'Get details', indicating a read operation, but does not disclose any potential side effects, required permissions, error responses, or limits. Minimal 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 extremely brief: one sentence and a parameter line. No wasted words, but it lacks structure beyond the initial purpose. It is appropriately concise for a simple tool but misses opportunities to add value.
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 is a simple fetch by ID and an output schema exists, the description could be minimal but it is still incomplete. It does not explain what 'details' includes, error handling, or how to obtain the deposit_id. With 0% parameter coverage and no annotations, more context is needed.
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% description coverage. The description says 'deposit_id: The deposit ID.' which simply restates the parameter name without adding any meaning, format, source, or constraints.
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 retrieves details of a specific fiat deposit, using the verb 'Get' and resource 'details of a specific fiat deposit'. The word 'specific' distinguishes it from sibling 'get_fiat_deposits' which lists multiple deposits. However, it does not explicitly name the sibling for contrast.
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 on when to use this tool vs alternatives like 'get_fiat_deposits' for listing. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiat_depositsB
Get fiat (AED) deposit history.
Args: offset: Pagination offset. limit: Max results (up to 1000). from_date: Only return deposits from this date (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| limit | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided; the description only states 'Get' which suggests a read operation but offers no details on rate limits, authentication, or behavior with empty results.
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 very short and front-loaded with the main purpose. Parameter descriptions are listed clearly, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has optional parameters and an output schema exists (not shown), but the description does not mention return value, pagination behavior, or edge cases. It covers basic semantics but is incomplete for a history-listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains offset, limit, and from_date with brief specifications (e.g., 'up to 1000', 'YYYY-MM-DD'), but lacks details like starting offset or inclusivity of dates.
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 'Get fiat (AED) deposit history' with a specific verb and resource, and distinguishes from sibling tools like get_fiat_deposit (singular) and get_fiat_withdrawals.
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 on when to use this tool versus alternatives, no prerequisites, and no exclusions. The parameter descriptions imply pagination but do not provide explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiat_withdrawalC
Get details of a specific fiat withdrawal.
Args: withdrawal_id: The withdrawal ID.
| Name | Required | Description | Default |
|---|---|---|---|
| withdrawal_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, return format, or potential effects. It only states it gets details, which is minimal.
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 very short and to the point, with no unnecessary information. However, it could be slightly more structured (e.g., mentioning output).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and has an output schema, but the description does not mention the output details. It is adequate but could be more complete by noting what 'details' entails.
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 a brief explanation of the withdrawal_id parameter ('The withdrawal ID.'), but does not provide format, range, or source. With 0% schema coverage, the description partially compensates but is still minimal.
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 it gets details of a specific fiat withdrawal. However, it does not differentiate from sibling tools like get_fiat_withdrawals or get_fiat_deposit, but the core purpose is clear.
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 on when to use this tool versus alternatives. No mention of prerequisites or exclusions. The description only states what it does, not when or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiat_withdrawalsB
Get fiat (AED) withdrawal history.
Args: offset: Pagination offset. limit: Max results (up to 1000). from_date: Only return withdrawals from this date (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| limit | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains pagination (offset, limit) and optional date filtering but lacks details on output format, sorting order, rate limits, or side effects. Since the tool is a read operation, it is likely non-destructive, but the description does not explicitly confirm this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose, followed by a clear parameter list. No superfluous text. Could be slightly more structured (e.g., bullet points) but remains efficient.
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 output schema exists, it is acceptable not to describe the output. However, the description does not clarify when to use this listing tool versus the singular 'get_fiat_withdrawal' sibling. The three optional parameters are well-covered, but the context of batch operations versus single retrieval is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain all parameters. It does so adequately: offset as pagination offset, limit with a max of 1000, from_date with a date format (YYYY-MM-DD). This adds meaning beyond the schema, which only provides type and default.
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 'Get fiat (AED) withdrawal history,' identifying the verb (get), resource (fiat withdrawal history), and currency (AED). The plural form distinguishes it from the singular sibling 'get_fiat_withdrawal,' but the description does not explicitly differentiate.
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 on when to use this tool versus alternatives (e.g., get_fiat_withdrawal for a single withdrawal, cancel_fiat_withdrawal for cancellation). It mentions filtering by date but not prerequisites or when to avoid usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketsA
List all available tokens and trading pairs on BitOasis.
Returns each token's symbol, name, and whether trading/deposits/withdrawals are enabled, along with available trading pairs.
| 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?
The description explains the return fields (symbol, name, status, pairs), which is transparent enough for a read-only list operation. No annotations exist, but it doesn't cover rate limits or other traits, though not critical here.
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?
Extremely concise: two sentences, front-loaded with the action, then details the return fields. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema, the description fully covers what the tool does and returns. No missing aspects.
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?
No parameters exist, so the description adds no parameter value. Baseline score of 4 is appropriate as there is no need for additional parameter info.
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 lists all tokens and trading pairs on BitOasis, with specific verbs and resource. It distinguishes from siblings like get_ticker or get_order_book, which focus on specific items.
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 explicit guidance on when to use vs alternatives. While it's clear the tool lists all markets, there is no mention of exclusions or comparisons to similar tools like get_ticker.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderB
Get details of a specific order by ID.
Args: order_id: The order ID.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only says 'Get details' with no mention of required permissions, rate limits, or behavior (e.g., error if order not found). Lacks depth.
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?
Very concise, one sentence plus args. Front-loaded. However, it may be too brief, missing useful details without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with an output schema, the description is minimally adequate but provides no info about return fields or prerequisites. Could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. It merely states 'The order ID' for the parameter, which adds minimal value beyond the schema's type and title.
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 'Get details of a specific order by ID', which is a specific verb+resource. It distinguishes from siblings like 'get_orders' (list) and 'cancel_order' (mutation).
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 on when to use this vs alternatives. Usage is implied (when you have an order_id), but no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_order_bookA
Get the order book (bids and asks) for a trading pair.
Args: pair: Trading pair, e.g. "BTC-AED". bids_limit: Max number of bid entries to return. asks_limit: Max number of ask entries to return.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | ||
| bids_limit | No | ||
| asks_limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It explains that the tool returns bids and asks with optional limits, but does not disclose whether data is real-time or historical, rate limits, or pagination 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 concise and front-loaded with the purpose. The args section adds helpful detail, but could be slightly trimmed if schema coverage were higher. Overall, it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters (1 required) and an output schema present, the description is fairly complete. It explains all parameters and the core functionality. Missing some behavioral context, but adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It defines 'pair' with an example, 'bids_limit' as max number of bid entries, and 'asks_limit' similarly, adding meaning beyond the schema's type and title.
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 'Get the order book (bids and asks) for a trading pair', specifying the verb (get) and resource (order book). It distinguishes from sibling tools like get_ticker and get_trades which serve different purposes.
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 does not explicitly state when to use this tool over alternatives, nor does it mention prerequisites or exclusions. Usage context is implied by the purpose, but no guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersB
List orders for a trading pair, optionally filtered by status.
Args: pair: Trading pair, e.g. "BTC-AED". status: Filter by status: "OPEN", "DONE", or "CANCELED". offset: Pagination offset. limit: Max results (up to 1000). from_date: Only return orders from this date (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | ||
| status | No | ||
| offset | No | ||
| limit | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the tool 'list orders', which implies a read-only operation, and mentions filtering and pagination parameters. However, it does not disclose authorization needs, rate limits, data freshness, or other behavioral traits beyond the 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?
The description is concise with a one-line summary followed by a parameter list. Every sentence adds value. It is front-loaded with the purpose. Minor improvement could merge the summary with the parameter list or remove redundancy, but it's efficient overall.
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 5 parameters, no annotations, and an output schema exists (so return values need not be explained), the description is fairly complete. It explains all parameters and provides examples. However, it lacks guidance on ordering, total count, error handling, or typical limits, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description effectively explains all five parameters: 'pair' includes an example ('BTC-AED'), 'status' lists the enum values, 'limit' specifies max (1000), and 'from_date' gives format (YYYY-MM-DD). It compensates well for the schema gap, though it doesn't clarify default behaviors or inclusivity of date filter.
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 ('list orders') and target resource ('for a trading pair'), with optional filtering by status. This is specific and distinct from sibling tools like 'get_order' (single order) or 'cancel_order', though it does not explicitly differentiate from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when needing a list of orders for a pair), but provides no explicit guidance on when to use this tool versus alternatives (e.g., 'get_order' for a single order, 'get_order_book' for market depth). No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tickerC
Get current price/ticker information for a trading pair.
Args: pair: Trading pair, e.g. "BTC-AED", "ETH-AED", "SOL-AED".
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does not disclose that this is a read-only operation, nor any behavioral traits such as rate limits or data freshness. The minimal description adds little beyond the action itself.
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?
Exceptionally concise with no wasted words. The purpose is stated in the first sentence, followed by a single parameter description. Ideal length for a simple 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?
Despite having an output schema, the description lacks completeness. It does not describe what the ticker information includes (e.g., bid, ask, last price) or how it differs from related tools. The minimal information may leave an agent uncertain about the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description partially compensates by explaining the pair parameter with examples. However, it does not specify accepted formats or constraints beyond the examples, leaving ambiguity.
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 it retrieves current price/ticker information for a trading pair, using a specific verb and resource. However, it does not differentiate from sibling tools like get_order_book or get_trades, which could also involve price 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?
No guidance on when to use this tool over alternatives; no mention of prerequisites or context. The description simply states what it does without indicating when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tradesA
Get recent public trade history for a trading pair.
Args: pair: Trading pair, e.g. "BTC-AED". limit: Max number of trades to return. from_date: Only return trades from this date onward (YYYY-MM-DD).
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | ||
| limit | No | ||
| from_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 indicates a read-only operation ('public trade history') but does not disclose pagination, rate limits, or what happens with large limits. The description is adequate but not rich in behavioral detail.
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 clear front-loaded purpose and a parameter list using minimal words. Every sentence is necessary and easily scannable.
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 and the presence of an output schema, the description covers the core usage well. It lacks details on ordering, pagination, or error conditions, but for a public trade history tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning beyond the schema. It explains 'pair: Trading pair, e.g. BTC-AED', 'limit: Max number of trades to return', and 'from_date: Only return trades from this date onward (YYYY-MM-DD).' This adds useful context, though default values and behavior for null are not specified.
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 'Get recent public trade history for a trading pair.' This is a specific verb and resource, and it distinguishes the tool from siblings like get_order_book (order book) and get_ticker (ticker).
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 does not provide explicit guidance on when to use this tool versus alternatives (e.g., get_orders). It mentions 'public' trade history, which implies it's for public data, but lacks clear when-not-to-use statements or comparisons with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_coin_deposit_addressA
Generate a new deposit address for a cryptocurrency.
Args: currency: Crypto symbol, e.g. "BTC", "ETH". network: Network code (e.g. "bitcoin", "erc20", "trc20"). Uses default if omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | ||
| network | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only states the tool generates a new address, missing details on side effects (e.g., whether old addresses become invalid), authorization needs, or error behavior. This is minimal 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 extremely concise: one sentence stating purpose, followed by a clear parameter list. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and has an output schema, the description lacks context on mutation effects (e.g., whether generating a new address replaces the old one) and possible error conditions. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds concrete examples for currency (e.g., 'BTC', 'ETH') and network (e.g., 'bitcoin', 'erc20'), clarifies optionality, and explains default behavior. This adds meaningful context beyond the schema's titles and types.
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 generates a new deposit address for a cryptocurrency, using specific verbs and resource. It distinguishes from sibling tools like new_coin_withdrawal (which creates withdrawals) and get_coin_deposit (which reads deposits).
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 implies usage for generating new addresses but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives or exclusions are mentioned, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_coin_withdrawalA
Create a new cryptocurrency withdrawal.
Note: BitOasis requires email and SMS/TOTP confirmation for withdrawals.
Args: currency: Crypto symbol, e.g. "BTC", "ETH". amount: Amount to withdraw (as string). withdrawal_address: Destination wallet address. withdrawal_address_id: Additional address identifier (e.g. XRP tag, XLM memo). network: Network code (e.g. "bitcoin", "erc20"). Uses default if omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | ||
| amount | Yes | ||
| withdrawal_address | Yes | ||
| withdrawal_address_id | No | ||
| network | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It warns about required confirmations but does not detail error behavior, rate limits, or consequences of failure. The output schema exists but isn't referenced, so return behavior is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a single-line purpose, a note about confirmation, then a bullet-like list of parameters. Every sentence adds value without redundancy.
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 5 parameters (3 required) and no annotations, the description covers all parameters and a security aspect. Output schema exists, so return format is handled. Missing prerequisites like balance requirements or differentiation from new_fiat_withdrawal keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description explains each parameter: currency examples, amount as string, withdrawal_address_id as 'e.g. XRP tag'. This adds meaningful context beyond the schema's type/title. However, it could specify amount format or constraints.
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 'Create a new cryptocurrency withdrawal.' This is a specific verb+resource combination, distinguishing it from siblings like new_fiat_withdrawal and place_order.
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 informs that 'BitOasis requires email and SMS/TOTP confirmation for withdrawals,' providing a crucial usage guideline. However, it does not explicitly contrast with alternatives like new_fiat_withdrawal or indicate when to avoid using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
new_fiat_withdrawalC
Create a new fiat withdrawal to a registered bank account.
Args: amount: Amount to withdraw. currency: Fiat currency (default: "AED"). origin: Origin identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| currency | No | AED | |
| origin | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose any behavioral traits such as side effects, error conditions, rate limits, or response handling.
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 very short and includes a parameter list, but it omits important details. It is concise yet under-specified for a creation 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?
Despite the presence of an output schema, the description does not explain what the tool returns on success or failure, nor does it cover error handling or post-creation steps, leaving the tool incomplete for practical 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 description lists the three parameters but adds little beyond the schema's titles and defaults. With 0% schema description coverage, it partially compensates but remains minimal (e.g., 'Amount to withdraw' is essentially the same as the schema title).
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 ('Create a new fiat withdrawal') and specifies the target resource ('to a registered bank account'), distinguishing it from siblings like 'new_coin_withdrawal' or 'cancel_fiat_withdrawal'.
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, prerequisites (e.g., registered bank account), or any context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_orderA
Place a new order on BitOasis Pro exchange.
Args: pair: Trading pair, e.g. "BTC-AED", "SOL-AED". side: "buy" or "sell". order_type: "limit", "market", "stop", or "stop_limit". amount: Amount of the base currency (as a string). price: Limit price (required for "limit" and "stop_limit" orders). stop_price: Stop price (required for "stop" and "stop_limit" orders). test: If true, validates the order without placing it.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | ||
| side | Yes | ||
| order_type | Yes | ||
| amount | Yes | ||
| price | No | ||
| stop_price | No | ||
| test | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. Explains parameter conditions and test flag for validation. Could mention order lifecycle or execution behavior, but sufficient for a standard order placement.
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?
Structured as a docstring with Args section. Concise, front-loaded purpose, no wasted sentences.
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?
Covers all 7 parameters, required/optional conditions. Output schema exists, so return values not needed. Complete for an agent to 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?
Schema coverage is 0%, but description compensates fully: explains each parameter with examples (pair), options (side, order_type), format (amount as string), and conditional requirements (price, stop_price), and test 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?
Clearly states 'Place a new order on BitOasis Pro exchange,' specifying verb and resource. Distinguishes from sibling tools like cancel_order and get_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?
Explicitly lists parameters and conditional requirements (price for limit/stop_limit, stop_price for stop/stop_limit). Does not explicitly contrast with siblings or provide when-not-to-use guidance, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: balances, orders, deposits/withdrawals (separated by crypto and fiat), market data, etc. There is no ambiguity between tools.
Tools mostly follow a verb_noun pattern with snake_case (e.g., get_balances, cancel_order). However, there is inconsistency: place_order vs. new_coin_withdrawal (place vs. new). Also singular vs. plural (get_coin_deposit vs. get_coin_deposits) but within acceptable limits.
23 tools is on the higher side but still reasonable for a comprehensive crypto exchange API covering orders, deposits, withdrawals, and market data. It slightly exceeds the ideal range but does not feel bloated.
The tool set covers core exchange operations: order management, balances, deposits/withdrawals, and market data. Notable missing features include trading fees, ability to cancel coin withdrawals (only fiat withdrawals can be cancelled), and a method to generate fiat deposit addresses (though that may be out of scope). Overall, minor gaps exist.
Maintenance
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.
Trade, monitor portfolios, and build Coinrule strategies by chat.
Non-custodial crypto payments for AI assistants: balances, payments, and create payment links.
AI agent access to Asian crypto markets. Korean exchange routing and x402 paid APIs.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI assistants to interact with Bitget cryptocurrency exchange for spot and futures trading. Supports real-time market data, order management, account balances, leverage control, and position tracking with demo trading capabilities.175MIT
- FlicenseBqualityDmaintenanceEnables AI assistants to trade cryptocurrencies and manage accounts on MAX Exchange through natural language. Supports spot and margin trading, market data queries, order management, and wallet operations including deposits, withdrawals, and M-wallet lending.45
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with the Bybit cryptocurrency exchange via the V5 API, supporting market data, trading, and account management with both local and remote OAuth-authenticated connections.281MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to interact with the Bit2Me cryptocurrency ecosystem, including real-time market data, wallet management, trading, and products like Earn and Loans.48655MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/bit-oasis/bitoasis-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server