freqtrade-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., "@freqtrade-mcpshow my open trades"
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.
@furkankoykiran/freqtrade-mcp
TypeScript MCP server for Freqtrade — connect AI agents (Claude, Cursor, Cline) to your crypto trading bot via its REST API.
Built with the official MCP TypeScript SDK, it exposes 15 tools covering account stats, trade management, market data, pair list control, trade execution, and bot lifecycle — all accessible from any MCP-compatible client.
Features
Category | Tools |
Account |
|
Trades |
|
Market Data |
|
Pair Lists |
|
Execution |
|
Lifecycle |
|
Related MCP server: freqtrade-mcp
Prerequisites
Freqtrade running with the REST API enabled (see Freqtrade REST API docs)
Node.js 18+ (
node --version)
Enable the Freqtrade REST API
Add the following to your Freqtrade config.json:
"api_server": {
"enabled": true,
"listen_ip_address": "127.0.0.1",
"listen_port": 8080,
"verbosity": "error",
"enable_openapi": false,
"jwt_secret_key": "change-this-to-a-random-32-char-string",
"username": "Freqtrader",
"password": "YourStrongPassword"
}Installation
Option 1 — Run directly with npx (no install required)
FREQTRADE_PASSWORD=yourpassword npx @furkankoykiran/freqtrade-mcpOption 2 — Install globally from npm
npm install -g @furkankoykiran/freqtrade-mcp
FREQTRADE_PASSWORD=yourpassword freqtrade-mcpOption 3 — Install from GitHub Packages
npm install -g @furkankoykiran/freqtrade-mcp --registry=https://npm.pkg.github.com
FREQTRADE_PASSWORD=yourpassword freqtrade-mcpOption 4 — Build from source
git clone https://github.com/furkankoykiran/freqtrade-mcp.git
cd freqtrade-mcp
npm install
npm run build
node build/index.jsConfiguration
The server is configured entirely via environment variables — no config file needed.
Variable | Default | Description |
|
| Base URL of the Freqtrade API server |
|
| API username from your Freqtrade config |
| (empty) | API password — required |
Copy .env.example to .env and fill in your values for local development.
MCP Client Setup
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"freqtrade": {
"command": "npx",
"args": ["-y", "@furkankoykiran/freqtrade-mcp"],
"env": {
"FREQTRADE_API_URL": "http://127.0.0.1:8080",
"FREQTRADE_USERNAME": "Freqtrader",
"FREQTRADE_PASSWORD": "YourStrongPassword"
}
}
}
}VS Code (Cline / Continue)
Add to your MCP server settings:
{
"freqtrade": {
"command": "npx",
"args": ["-y", "@furkankoykiran/freqtrade-mcp"],
"env": {
"FREQTRADE_API_URL": "http://127.0.0.1:8080",
"FREQTRADE_USERNAME": "Freqtrader",
"FREQTRADE_PASSWORD": "YourStrongPassword"
}
}
}Built from source
{
"freqtrade": {
"command": "node",
"args": ["/absolute/path/to/freqtrade-mcp/build/index.js"],
"env": {
"FREQTRADE_API_URL": "http://127.0.0.1:8080",
"FREQTRADE_USERNAME": "Freqtrader",
"FREQTRADE_PASSWORD": "YourStrongPassword"
}
}
}Available Tools
Account
get_profit_stats
Retrieve current profit/loss statistics: total profit, win/loss ratio, best pair, drawdown, trading volume, and more.
get_balance
Retrieve the current account balance across all currencies, including free, used, and total amounts.
get_performance
Retrieve per-pair trading performance metrics, including profit and trade count.
Parameter | Type | Required | Description |
| string | No | Filter to a specific pair (e.g. |
Trades
get_open_trades
Retrieve all currently active trades, including entry price, current profit, stake amount, and duration.
get_trade
Retrieve detailed information about a specific trade by its ID.
Parameter | Type | Required | Description |
| number | Yes | Numeric trade ID |
get_trade_history
Retrieve closed trade history with optional pagination.
Parameter | Type | Required | Description |
| number | No | Max trades to return (max 500) |
| number | No | Pagination offset |
Market Data
get_market_data
Retrieve live OHLCV candlestick data for a trading pair.
Parameter | Type | Required | Description |
| string | Yes | Trading pair (e.g. |
| enum | Yes |
|
| number | No | Number of candles (max 500) |
Pair Lists
get_whitelist / get_blacklist
Retrieve the current whitelist / blacklist.
add_to_blacklist
Add a trading pair to the blacklist.
Parameter | Type | Required | Description |
| string | Yes | Pair to blacklist (e.g. |
remove_from_blacklist
Remove a trading pair from the blacklist.
Parameter | Type | Required | Description |
| string | Yes | Pair to remove |
Trade Execution
execute_trade
Force-enter a trade, bypassing strategy signals. The bot manages the position after entry.
Parameter | Type | Required | Description |
| string | Yes | Trading pair (e.g. |
|
| Yes | Trade direction |
| number | No | Amount in stake currency |
| number | No | Limit price (omit for market order) |
|
| No | Order type |
Natural language examples:
"buy 100 USDT of BTC" →
pair=BTC/USDT,side=long,stake_amount=100"short ETH/USDT at 2000" →
pair=ETH/USDT,side=short,price=2000
force_exit_trade
Force-exit an open trade. Supports full and partial exits.
Parameter | Type | Required | Description |
| number | Yes | Trade ID to exit |
|
| No | Exit order type (default: market) |
| number | No | Partial exit amount |
Bot Lifecycle
start_bot / stop_bot
Start or stop the trading bot.
reload_config
Reload the bot configuration from disk without restarting the process.
get_bot_info
Retrieve bot version and the timestamp of the last strategy run cycle.
get_locks
Retrieve all active trade locks.
delete_lock
Remove a specific trade lock by ID.
Parameter | Type | Required | Description |
| number | Yes | Lock ID to remove |
Development
# Clone and install
git clone https://github.com/furkankoykiran/freqtrade-mcp.git
cd freqtrade-mcp
npm install
# Run in development mode (auto-reloads on change)
cp .env.example .env
# Edit .env with your Freqtrade credentials
npm run dev
# Type-check
npm run typecheck
# Lint
npm run lint
# Build for production
npm run buildTesting with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.jsSet the environment variables in the Inspector UI and verify all 15 tools are listed.
Contributing
Contributions are welcome. Please read the contributing guidelines and open an issue before submitting a pull request for significant changes.
License
MIT — see LICENSE.
Available Tools
19 toolsadd_to_blacklistB
Add a trading pair to the blacklist to prevent the bot from opening new trades on it.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Trading pair to blacklist in exchange format (e.g. ETH/USDT, BNB/BTC). Wildcards are supported by some pair list providers (e.g. BNB/.*) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only mentions preventing new trades but does not disclose effects on existing trades, reversibility, permissions, or side effects. More behavioral context is needed.
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 that efficiently conveys the core action and purpose. It could add more details without becoming verbose, but it is not wasteful.
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 tool with one parameter and no output schema, the description is adequate but lacks details about persistence, effect on existing trades, and relationship to sibling tools like 'get_blacklist' or 'remove_from_blacklist'.
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 100% and the parameter description is already informative. The tool description adds no additional meaning beyond restating the schema's explanation of the 'pair' parameter.
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 ('Add a trading pair to the blacklist') and the purpose ('to prevent the bot from opening new trades on it'). It distinguishes itself from siblings like 'remove_from_blacklist' and 'get_blacklist' by specifying the addition operation.
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 context (when you want to prevent trades on a pair) but does not explicitly state when to use this tool versus alternatives like 'remove_from_blacklist'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_lockA
Remove a specific trade lock by its ID. Use get_locks to list current locks and their IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| lock_id | Yes | Numeric ID of the lock to remove. Obtain from get_locks. |
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 states the action ('remove') but does not disclose behavioral traits such as irreversibility, required permissions, or potential side effects. For a deletion operation, this lack of detail is a gap, but the simplicity of the operation keeps it at a moderate score.
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 two sentences, no redundant information. The purpose is front-loaded, and every sentence serves a clear function.
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 required parameter, no output schema, no nested objects), the description is fully adequate. It covers the purpose and parameter sourcing, leaving no ambiguity.
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 meaning beyond the input schema by explicitly stating that the lock_id can be obtained from get_locks, providing context for the parameter. With 100% schema coverage, this additional guidance elevates the score above baseline 3.
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 ('Remove') and the resource ('specific trade lock by its ID'), with a specific verb and resource. It distinguishes from other tools by specifying the use of an ID, which is unique to this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool ('remove a specific trade lock') and directs users to get_locks to obtain the required ID, providing clear prerequisite guidance. This helps avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_tradeA
Manually enter (force-enter) a trade on a specific pair. The bot bypasses strategy signals and opens the position immediately. Natural language examples: • "buy 100 USDT of BTC/USDT" → pair=BTC/USDT, side=long, stake_amount=100 • "short 0.5 ETH/USDT at 2000" → pair=ETH/USDT, side=short, price=2000 The position will be managed by the active strategy after entry.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Trading pair in exchange format (e.g. BTC/USDT, ETH/BTC). | |
| side | Yes | Trade direction: "long" to buy, "short" to sell/short. | |
| stake_amount | No | Amount in stake currency (e.g. USDT) to use for this trade. Omit to use the bot's configured stake amount. | |
| price | No | Limit order price. Omit to use current market price (market order). | |
| order_type | No | Order type. Defaults to the strategy's configured order type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description clearly states override behavior, immediate execution, and post-entry management. Does not contradict any structured data, but could mention safety or permission considerations.
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?
Compact and well-structured: opens with purpose, explains override behavior, provides practical examples. 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 no output schema and 5 parameters, description covers entry behavior and post-strategy management. Lacks details on error handling or return format, but sufficient for typical agent usage.
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?
Adds significant value beyond schema descriptions: explains optional nature of stake_amount and price, illustrates parameter usage with natural language examples, clarifies order_type defaults. Schema coverage is 100% but description enhances understanding.
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?
Describes a specific action (force-enter trade) with clear verb-resource pairing, distinguishes from normal strategy-driven trades and sibling 'force_exit_trade'. Natural language examples reinforce purpose.
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?
States when to use (bypass strategy, force entry) and notes position will be managed afterward. Indirectly excludes normal trading workflow, but lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
force_exit_tradeA
Manually exit (force-sell) an open trade, bypassing the strategy exit signals. Supports full and partial exits. Examples: • Close trade 42 immediately: trade_id=42 • Partial exit 50% of trade 7: trade_id=7, amount=
| Name | Required | Description | Default |
|---|---|---|---|
| trade_id | Yes | Numeric ID of the open trade to exit. Use get_open_trades to find trade IDs. | |
| order_type | No | Exit order type. Defaults to "market" for immediate execution. | |
| amount | No | Amount of the asset to sell (partial exit). Omit to close the entire position. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool bypasses strategy signals, performs a sell, and supports partial exits. It does not detail side effects like order execution details, but the core behavior is transparent.
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: two sentences of core information plus bulleted examples. No wasted words; front-loaded with the key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 params, no output schema, and no annotations, the description covers purpose, usage, and partial exit capability. It could mention what happens after exit (e.g., trade closed, funds returned), but the examples provide enough guidance.
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 100%, so baseline is 3. The description adds value through examples showing trade_id and amount usage, clarifying partial exit semantics. It does not elaborate on order_type beyond the schema, but the examples imply market order.
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 ('Manually exit (force-sell) an open trade') and differentiates from normal exits by noting it 'bypasses the strategy exit signals'. This distinguishes it from sibling tools like execute_trade or get_open_trades.
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 (manual override of strategy) and supports both full and partial exits via examples. It does not explicitly state when not to use it, but the context is sufficient for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceA
Check the current wallet and account balance across all currencies, including free, used, and total amounts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly indicates a read-only operation returning balance details. It does not state permissions or side effects, but the behavior is simple and well-described.
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?
One sentence that is concise and front-loaded, 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?
Despite no output schema, the description mentions free, used, and total amounts, giving a good picture of the response. Sufficient for a simple balance check 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?
There are zero parameters, so baseline is 4. The description does not need to add parameter meaning as the schema is empty.
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 checks wallet and account balance across all currencies, specifying free, used, and total amounts. It distinguishes from siblings like get_market_data or get_open_trades.
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 (e.g., get_market_data for specific market balances). 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_blacklistA
View the current trading pair blacklist — pairs that are explicitly excluded from trading.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description clearly indicates a read-only operation ('View'). Since there are no parameters or side effects, it is transparent enough, though the return format is not described.
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?
A single sentence with 15 words that is front-loaded and contains no fluff. The dash adds clarity.
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 parameterless, read-only tool with no output schema, the description provides sufficient context. However, it could hint at the output (e.g., list of pair symbols).
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 baseline 4 applies. The description adds no extra parameter info, which is acceptable given the empty 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 uses a specific verb 'View' and resource 'current trading pair blacklist', and explains what a blacklist is ('pairs that are explicitly excluded from trading'), clearly distinguishing from sibling tools like get_whitelist or add_to_blacklist.
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_whitelist, but the purpose is implied. Could benefit from specifying that it is for reviewing the blacklist without making changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bot_infoA
Get general information about the bot: software version and the timestamp of the last strategy run cycle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description discloses that the tool returns software version and timestamp of the last strategy run cycle. However, it does not mention whether the operation is read-only, requires authentication, or has any side effects. It adds some behavioral context but is not comprehensive.
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 sentence that directly states the tool's purpose and the specific information it returns. No unnecessary words, well 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 has no parameters and no output schema, the description is complete for its simplicity. It covers the key information needed by an agent to decide to use this 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?
There are no parameters, so the description does not need to add additional meaning. Schema coverage is 100% by default, and the description is sufficient.
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 general bot information, specifically software version and last strategy run timestamp. It uses a specific verb ('Get') and resource ('bot info'), and distinguishes from sibling tools like get_balance or get_market_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 implies usage for retrieving bot version and last run timestamp. While no explicit when/when-not guidance is given, the context is clear and the purpose is narrow enough to avoid confusion with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_locksA
Retrieve all active trade locks. Locks prevent the bot from opening new trades on specific pairs for a defined period.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description correctly indicates a read operation, but lacks explicit statement about side-effects or safety; adequate for a simple retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action, no unnecessary 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 zero parameters and no output schema, the description fully explains the tool's purpose and 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?
No parameters exist, so description correctly has no parameter info; baseline 4 applies.
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?
Description clearly states the tool retrieves active trade locks and explains what locks are, distinguishing it from sibling tools like delete_lock.
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; usage is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_dataA
Fetch live OHLCV (Open/High/Low/Close/Volume) candlestick market data for a specific trading pair and timeframe.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Trading pair in exchange format (e.g. BTC/USDT, ETH/BTC). Must be available on the connected exchange. | |
| timeframe | Yes | Candle timeframe. Common values: 1m (1 minute), 5m, 15m, 1h (1 hour), 4h, 1d (1 day). | |
| limit | No | Number of candles to return (default: determined by exchange, max: 500). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It notes 'live' data but does not disclose potential caching, rate limits, or whether data is real-time vs. delayed. Also lacks mention of return format or side effects (though it is clearly read-only).
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 filler, directly states purpose. Front-loaded with key action and object.
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?
Tool has 3 input parameters, all documented. Description covers the type of data (OHLCV candlesticks) but does not specify the exact output structure (e.g., array of candles with fields). With no output schema, a bit more detail on return format would be beneficial, but still fairly 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 100%. Description adds useful clarifications like 'Must be available on the connected exchange' for pair, and provides common timeframe examples. However, it does not significantly surpass the schema's own 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?
Description clearly states fetching live OHLCV candlestick data for a specific pair and timeframe. It uses a specific verb ('fetch') and resource, distinguishing it from sibling tools like 'get_balance' or 'get_trade'.
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?
Usage context is implied ('fetch live OHLCV market data') but no explicit guidance on when to use this tool versus alternatives such as 'get_trade_history' or 'get_performance'. Missing exclusions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_tradesA
View all currently active (open) trades, including entry price, current profit, stake amount, and duration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It lists returned fields but does not explicitly state that the tool is read-only, has no side effects, or any rate limits/auth requirements. Minimal behavioral disclosure.
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, concise, front-loaded with 'View all currently active (open) trades'. Every word 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?
For a simple no-parameter tool, description adequately lists key return fields. However, no output schema exists, and no annotations; could mention pagination or limits. Still sufficient for basic 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?
No parameters defined, schema coverage is 100% (empty). Description adds no parameter info because none needed. Baseline for 0 parameters is 4, which is appropriate.
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?
Description clearly states 'View all currently active (open) trades' with specific verb and resource. It distinguishes from siblings like get_trade (single trade), get_trade_history (historical), and get_performance (statistics).
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 when-to-use or when-not-to-use guidance. While the purpose is clear, it does not mention alternatives or contexts where this tool should be avoided, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performanceA
Retrieve per-pair trading performance metrics, including profit and trade count for each pair.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | No | Optional trading pair to filter results (e.g. BTC/USDT). Omit to get all pairs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description implies read-only behavior by stating 'Retrieve metrics'. Provides output shape (profit and trade count). Could explicitly state non-destructive nature, but sufficient for a simple fetch 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?
Single sentence, no redundancy, efficiently conveys core purpose and parameter behavior. Front-loaded with key action.
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 read tool with one optional parameter, description covers purpose, parameter usage, and output content (profit and trade count). No missing information given complexity.
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 100% with detailed description for the single parameter. Description adds minimal extra beyond schema (context of 'per-pair'). Baseline 3 applies.
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?
Description clearly states verb 'Retrieve' and resource 'per-pair trading performance metrics', including specifics 'profit and trade count'. This distinguishes it from sibling tools like get_profit_stats (aggregate) and get_trade (single trade).
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?
Gives guidance on parameter usage ('Optional trading pair... Omit to get all pairs') but does not explicitly compare to alternatives like get_profit_stats or get_balance. No when-not-to-use or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profit_statsA
Retrieve current profit and loss statistics: total profit, win/loss ratio, best pair, drawdown, trading volume, and more.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('Retrieve'), which aligns with the tool's nature. However, with no annotations provided, it lacks details on data freshness, caching, or any side effects. The minimal disclosure is acceptable for a simple retrieval tool but could be improved.
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 that front-loads the action and lists key metrics. No unnecessary words, every part 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?
Given no parameters and no output schema, the description lists the expected statistics, making it fairly complete. It does not explain the return format or pagination, but for a simple stats tool, this is adequate.
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?
There are no parameters, so the description does not need to add parameter-level detail. It lists some return fields, which provides context beyond the schema. With 0 parameters and 100% schema coverage, baseline is 4.
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?
Description clearly states the tool retrieves profit and loss statistics and lists several specific metrics (total profit, win/loss ratio, etc.). This makes the purpose clear, but it does not explicitly differentiate from the sibling tool 'get_performance', which may have overlapping functionality.
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 like 'get_balance' or 'get_performance'. The description does not provide context on prerequisites, timing, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tradeA
Retrieve detailed information about a specific trade by its ID, including full history, fees, and profit/loss.
| Name | Required | Description | Default |
|---|---|---|---|
| trade_id | Yes | The numeric trade ID to look up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions return contents (history, fees, profit/loss) but does not disclose error handling for invalid IDs, authorization needs, or rate limits. Adequate but not comprehensive.
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 that is succinct and front-loaded with verb and resource. No redundant words or 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 simple parameter and no output schema, description adequately explains return details. Lacks mention of potential null/error responses, but sufficient for basic retrieval 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 100% with one well-described parameter. Description adds 'by its ID' but does not provide additional meaning beyond the schema. Baseline of 3 is appropriate.
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 verb 'retrieve', resource 'trade', and scope 'by its ID'. Distinguishes from sibling tools like get_open_trades (list) and get_trade_history (history 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?
Implies usage when needing detailed info on one trade, but does not explicitly state when to use vs alternatives or when not to use. No guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_historyA
Retrieve closed trade history with optional pagination. Returns trades sorted by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of trades to return (default: 500, max: 500). | |
| offset | No | Pagination offset: number of trades to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates it returns sorted trades with pagination, but does not disclose that it is read-only (no side effects) or any other behavioral traits. Given no annotations, it carries the burden but omits explicit safety disclosure.
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 two sentences, no wasted words, and front-loads the core action.
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 simple tool (list with pagination) and no output schema, the description covers purpose, sorting, and pagination. It could mention the default limit explicitly but is otherwise 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 coverage is 100%, so the description adds no extra meaning beyond what the schema provides (limit, offset, defaults). The phrase 'optional pagination' is already implied by 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 'Retrieve closed trade history', specifying the verb and resource. It distinguishes from sibling tools like 'get_open_trades' (open trades) and 'get_trade' (single trade) by focusing on closed trades.
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 mentions optional pagination and sorting by ID, implying usage for retrieving multiple closed trades. However, it does not explicitly state when to use this tool over alternatives like 'get_open_trades' or 'get_trade'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whitelistA
View the current trading pair whitelist — the set of pairs the bot is allowed to trade.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'View' implies a read-only, non-destructive operation. However, with no annotations provided, the description could offer more details on behaviors like idempotency or side effects. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the action and resource. Every word adds value with no 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 the tool's simplicity (no parameters, no output schema), the description sufficiently explains its purpose. However, it could briefly hint at the output format (e.g., list of pairs) for full completeness, but it's not a major gap.
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 no parameters (100% schema coverage trivially). There is no parameter information needed, so baseline score of 3 applies. The description adds no parameter semantics, which is acceptable.
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 'View' and the resource 'trading pair whitelist', distinguishing it from sibling tools like get_blacklist. It provides a brief explanation of the whitelist's role.
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 implicitly conveys when to use (to view the whitelist), but does not explicitly compare with alternatives or state when not to use it. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reload_configA
Reload the bot configuration from disk. Useful after editing config.json without restarting the process. The bot will briefly pause trading during the reload.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses an important behavioral trait: 'The bot will briefly pause trading during the reload'. This gives the agent a key insight about side effects. It could also mention what happens if the config is invalid, but overall it adds value beyond the structured fields.
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 two sentences long, with the first sentence stating the core action and the second providing usage context and a behavioral note. Every sentence adds value, and it is front-loaded with the most important 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 no output schema and no parameters, the description covers the essential aspects: purpose, when to use, and a notable side effect. It could optionally mention success indicators, but the description is nearly complete for this 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?
There are no parameters (schema coverage is 100% with no properties), so the baseline is 4. The description does not need to add parameter information, and it correctly omits any redundant explanation.
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 ('reload configuration from disk') and the resource ('config'). It distinguishes itself from siblings by implying it's a lighter operation than restarting, but does not explicitly compare to other tools like start_bot or stop_bot.
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 says 'Useful after editing config.json without restarting the process', providing clear guidance on when to use it. However, it does not mention when not to use it or list alternative tools for similar situations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_from_blacklistB
Remove a trading pair from the blacklist, allowing the bot to trade it again.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Trading pair to remove from the blacklist (e.g. ETH/USDT). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only states the basic effect. It does not disclose behavior if pair is not blacklisted, or any side effects on active trades.
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 with no wasted words. It is front-loaded but lacks structured formatting.
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 operation with one parameter and no output schema, the description is adequate but could be more informative about error conditions or expected 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 coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter description.
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 (remove from blacklist) and the result (allowing trading), distinguishing it from sibling tools like add_to_blacklist and get_blacklist.
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?
While the purpose is clear, no explicit guidance is given on when to use this tool versus alternatives or any prerequisites (e.g., pair must be blacklisted). Usage is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_botA
Start the Freqtrade bot. The bot will begin trading according to its configured strategy. Has no effect if already running.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the effect (starts bot, no effect if already running) but lacks details on side effects, permissions, or trade impact. It is minimally adequate for a zero-parameter 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 two sentences, front-loaded with the action, and contains no extraneous information. Every word earns its place.
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 simplicity (no parameters, no output schema), the description is fairly complete. It covers the action and idempotency. It could mention what 'start' entails (e.g., trading begins immediately), but it's sufficient.
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 schema coverage is 100%. The description adds no parameter info, but since none exist, a baseline of 4 is appropriate.
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 ('Start the Freqtrade bot') and the resource ('bot'), with an explicit note on idempotency ('Has no effect if already running'). It distinguishes from sibling tools like 'stop_bot'.
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 (starting the bot) but does not specify when to use this tool versus alternatives (e.g., reload_config vs start). It provides no context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_botA
Stop the Freqtrade bot. Existing open trades will remain open and will not be closed automatically. Use force_exit_trade to close positions manually.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses a critical behavioral aspect: existing open trades will not be closed automatically. This prevents confusion about 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?
The description is extremely concise with two sentences. The first sentence states the main action, and the second provides essential nuance. No unnecessary 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?
For a tool with no parameters or output schema, the description completely covers purpose, constraints, and relationship to sibling tools, making it fully informative.
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?
There are no parameters, so the description does not need to add parameter information. Baseline score of 4 for zero-parameter tools.
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: 'Stop the Freqtrade bot.' It also explicitly mentions that open trades remain open, which distinguishes it from related tools like force_exit_trade.
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 guidance on when to use this tool and when not to, including a specific alternative: 'Use force_exit_trade to close positions manually.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action or resource. Blacklist, lock, trade execution, and bot control tools are clearly separated. Even similar tools like get_performance and get_profit_stats are differentiated by per-pair vs global perspective.
All tools follow a consistent verb_noun pattern (e.g., get_balance, add_to_blacklist, force_exit_trade). No mixing of conventions like camelCase or inconsistent verb forms.
19 tools is slightly above the ideal range but still reasonable for a comprehensive trading bot server. Each tool covers a necessary function without redundancy.
Core CRUD operations for trades, blacklist, locks, and bot control are present. Minor gaps exist, such as the inability to modify active trade parameters (e.g., stop loss) or cancel pending orders, but the essential workflow is covered.
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
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Trade 16 crypto exchanges + MetaTrader 5 from your AI assistant via one MCP connection.
Related MCP Servers
AlicenseCqualityCmaintenanceAn MCP server providing unified access to blockchain operations, bridging, swapping, and crypto trading strategies for AI agents.37178GPL 3.0- AlicenseNot gradedqualityDmaintenanceAn MCP server that integrates with the Freqtrade cryptocurrency trading bot.139MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that provides AI agents with financial tools including real-time quotes, backtesting, technical analysis, and multi-exchange data via a simple CLI interface.1MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for cryptocurrency trading via Freqtrade, enabling trade management, balance checks, strategy configuration, backtesting, and bot lifecycle control from any MCP-compatible AI agent.MIT
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/furkankoykiran/freqtrade-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server