servers / capital-com-mcp-server
capital-com-mcp-server
communityunknownpythondestructive capablehealthy
Capital.com MCP Server for Amazon Q and other LLMs
01Tools · 28
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| update_position Update an existing trading position with comprehensive stop/profit options.
This tool updates an existing position with new stop loss and/or take profit settings,
including support for guaranteed stops, trailing stops, and various trigger methods.
IMPORTANT: Use the dealId from get_positions, not the dealReference from create_position.
The dealId is found in the position.position.dealId field when calling get_positions.
Parameter rules:
- guaranteed_stop and trailing_stop are mutually exclusive
- trailing_stop requires stop_distance to be set
- guaranteed_stop requires at least one of: stop_level, stop_distance, or stop_amount
- At least one parameter must be provided
Args:
ctx: MCP context
deal_id: The deal ID of the position to update (from get_positions, not dealReference from create_position)
guaranteed_stop: Must be true if a guaranteed stop is required (cannot be used with trailing_stop or hedging mode)
trailing_stop: Must be true if a trailing stop is required (requires stop_distance, cannot be used with guaranteed_stop)
stop_level: Price level when a stop loss will be triggered
stop_distance: Distance between current and stop loss triggering price (required if trailing_stop is true)
stop_amount: Loss amount when a stop loss will be triggered
profit_level: Price level when a take profit will be triggered
profit_distance: Distance between current and take profit triggering price
profit_amount: Profit amount when a take profit will be triggered
Returns:
Dict[str, Any]: Position update result
| write | true | unknown |
| get_client_sentiment Get client sentiment for markets showing long vs short position percentages.
This tool retrieves client sentiment data from Capital.com showing what percentage
of clients are holding long vs short positions for specified markets. This data
can be useful for contrarian trading strategies and market sentiment analysis.
Args:
ctx: MCP context
market_ids: Market identifier(s) - single market or comma-separated list
Returns:
Dict[str, Any]: Client sentiment data with long/short percentages and interpretations
| read | false | unknown |
| confirm_deal Confirm the status of a position after creation using dealReference.
This tool confirms whether a position was successfully created and provides the dealId for position management.
Use this after create_position to verify the position was opened and get the dealId.
Args:
ctx: MCP context
deal_reference: The deal reference returned from create_position
Returns:
Dict[str, Any]: Deal confirmation with status and affected deals (including dealId)
| read | false | unknown |
| create_position Create a new trading position with comprehensive stop/profit options including trailing stops.
This tool creates a new trading position with full Capital.com API support including trailing stops,
guaranteed stops, and multiple stop/profit configuration options.
IMPORTANT WORKFLOW:
1. This tool returns a 'dealReference' (order reference) upon successful creation
2. To get the 'dealId' needed for close_position and update_position, call get_positions
after creation and find the position with matching details (epic, size, direction)
3. The dealId from get_positions is what you need for managing the position
STOP LOSS OPTIONS (mutually exclusive):
- guaranteed_stop: Cannot be used with trailing_stop or in hedging mode
- trailing_stop: Requires stop_distance, cannot be used with guaranteed_stop
STOP LOSS LEVELS (choose one):
- stop_level: Specific price level for stop loss
- stop_distance: Distance from current price (required for trailing stops)
- stop_amount: Specific loss amount
TAKE PROFIT LEVELS (choose one):
- profit_level: Specific price level for take profit
- profit_distance: Distance from current price
- profit_amount: Specific profit amount
Args:
ctx: MCP context
epic: The epic identifier for the instrument
direction: Trade direction (BUY or SELL)
size: Position size
guaranteed_stop: Guaranteed stop loss (premium feature, cannot be used with trailing_stop)
trailing_stop: Trailing stop loss that follows price (requires stop_distance)
stop_level: Specific stop loss price level
stop_distance: Stop loss distance from current price (points)
stop_amount: Stop loss amount in account currency
profit_level: Specific take profit price level
profit_distance: Take profit distance from current price (points)
profit_amount: Take profit amount in account currency
Returns:
Dict[str, Any]: Position creation result with dealReference and metadata about active features.
Use get_positions to obtain the dealId for position management.
| write | true | unknown |
| get_session_info Get current session information including active financial account.
This tool retrieves information about the current session including the active financial account.
Returns:
Dict[str, Any]: Session information
| read | false | unknown |
| get_watchlist_contents Get contents of a specific watchlist.
This tool retrieves all instruments in a specific watchlist.
Args:
ctx: MCP context
watchlist_id: The watchlist ID to get contents for
Returns:
Dict[str, Any]: Contents of the watchlist
| read | false | unknown |
| get_account_info Get account information from Capital.com.
This tool retrieves account information including balance, open positions, and account details.
Returns:
Dict[str, Any]: Account information
| read | false | unknown |
| get_positions Get all open positions.
This tool retrieves all currently open trading positions.
Returns:
Dict[str, Any]: Open positions
| read | false | unknown |
| get_watchlists Get all watchlists.
This tool retrieves all watchlists and their contents.
Returns:
Dict[str, Any]: Watchlists
| read | false | unknown |
| get_account_preferences Get account preferences including leverage settings and hedging mode.
This tool retrieves account preferences such as leverage settings for different instruments and hedging mode.
Returns:
Dict[str, Any]: Account preferences
| read | false | unknown |
| get_market_navigation_node Get assets under a specific market navigation node.
This tool retrieves all assets/instruments under a specific node in the market navigation hierarchy.
Args:
ctx: MCP context
node_id: The node ID to get assets for
Returns:
Dict[str, Any]: Assets under the specified node
| read | false | unknown |
| get_accounts Get list of all financial accounts.
This tool retrieves all financial accounts associated with your Capital.com account.
Returns:
Dict[str, Any]: List of financial accounts
| read | false | unknown |
| get_market_navigation Get asset group names for market navigation.
This tool retrieves the hierarchical structure of asset groups available for trading.
Returns:
Dict[str, Any]: Market navigation structure
| read | false | unknown |
| ping_api Test connection to the Capital.com API.
This tool tests the connection to the API server and returns the connection status.
Returns:
Dict[str, Any]: Connection status
| read | false | unknown |
| get_server_time Get server time from Capital.com API.
This tool retrieves the current server time from the Capital.com API.
Returns:
Dict[str, Any]: Server time information
| read | false | unknown |
| close_position Close an open position.
This tool closes an open position with the specified deal ID.
IMPORTANT: Use the dealId from get_positions, not the dealReference from create_position.
The dealId is found in the position.position.dealId field when calling get_positions.
Args:
ctx: MCP context
deal_id: The deal ID to close (from get_positions, not the dealReference from create_position)
Returns:
Dict[str, Any]: Position closure result
| read | false | unknown |
| create_working_order Create a working order (stop or limit order).
This tool creates a working order that will be executed when the market reaches the specified level.
Args:
ctx: MCP context
epic: The epic identifier for the instrument
direction: Trade direction (BUY or SELL)
size: Order size
level: Price level for the order
order_type: Order type (STOP or LIMIT)
time_in_force: Time in force
stop_level: Stop loss level (optional)
profit_level: Take profit level (optional)
Returns:
Dict[str, Any]: Working order creation result
| write | true | unknown |
| get_prices Get prices for a specific instrument.
This tool retrieves current price information for a specific instrument.
Args:
ctx: MCP context
epic: The epic identifier for the instrument
resolution: Time resolution (optional)
Returns:
Dict[str, Any]: Price information for the instrument
| read | false | unknown |
| change_financial_account Switch to a different financial account.
This tool allows switching between different financial accounts associated with your Capital.com account.
Args:
ctx: MCP context
account_id: The financial account ID to switch to
Returns:
Dict[str, Any]: Result of account change operation
| read | false | unknown |
| top_up_demo_account Top up demo account balance.
This tool adds funds to your demo trading account for testing purposes.
Args:
ctx: MCP context
amount: Amount to add to demo account balance
Returns:
Dict[str, Any]: Result of top-up operation
| read | false | unknown |
| update_account_preferences Update account preferences including leverage settings and hedging mode.
This tool updates account preferences such as leverage settings and hedging mode.
You can either use individual parameters for common settings or provide raw JSON for advanced use.
Args:
ctx: MCP context
hedging_mode: Enable/disable hedging mode
currencies_leverage: Leverage for CURRENCIES (FOREX) (e.g., 30 for 30:1)
cryptocurrencies_leverage: Leverage for CRYPTOCURRENCIES
commodities_leverage: Leverage for COMMODITIES
shares_leverage: Leverage for SHARES/stocks
indices_leverage: Leverage for INDICES
preferences_json: Raw JSON for custom preferences (advanced)
Returns:
Dict[str, Any]: Result of preferences update
| write | true | unknown |
| get_working_orders Get all working orders (may have visibility issues with newly created orders).
This tool retrieves all pending working orders (stop and limit orders). Based on testing:
- Orders created with create_working_order may not appear immediately
- Successfully created orders (with dealReference) sometimes don't show in this list
- May be due to demo account behavior or API processing delays
- Essential for finding correct working order IDs for update/delete operations
Returns:
Dict[str, Any]: List of working orders with metadata about potential visibility issues
| read | false | unknown |
| delete_working_order Delete a working order (REQUIRES actual working order ID, not dealReference).
This tool cancels and removes a working order. Based on testing:
- Requires the actual working order ID from get_working_orders(), not the dealReference from creation
- Currently experiencing 400 errors - may be due to demo account limitations or ID mismatch
- Orders may not be visible in get_working_orders() immediately after creation
IMPORTANT: Use get_working_orders() first to find the correct working order ID for orders
created with create_working_order(). The dealReference is different from the working order ID.
Args:
ctx: MCP context
working_order_id: The working order ID (from get_working_orders, not dealReference from creation)
Returns:
Dict[str, Any]: Working order deletion result with error details if failed
| destructive | true | true |
| search_markets Search for markets on Capital.com.
This tool searches for markets (instruments) on Capital.com. You can search by term or specific epics.
If both search_term and epics are provided, search_term takes priority.
Args:
ctx: MCP context
search_term: Search term to find markets (optional)
epics: Comma-separated epic identifiers, max 50 (optional)
limit: Maximum number of results to return
Returns:
Dict[str, Any]: Market search results
| read | false | unknown |
| get_historical_prices Get historical price data for a specific instrument.
This tool retrieves historical price data for a specific instrument with custom granularity.
Args:
ctx: MCP context
epic: The epic identifier for the instrument. You need to get this from the markets api
resolution: Time resolution (MINUTE, MINUTE_5, MINUTE_15, MINUTE_30, HOUR, HOUR_4, DAY, WEEK)
max: Maximum number of bars to return (default: 10, max: 1000)
from_date: Start date in ISO format (e.g., "2022-02-24T00:00:00")
to_date: End date in ISO format (optional)
Returns:
Dict[str, Any]: Historical price information for the instrument
| read | false | unknown |
| update_working_order Update a working order (REQUIRES actual working order ID, not dealReference).
This tool updates the parameters of an existing working order. Based on testing:
- Requires the actual working order ID from get_working_orders(), not the dealReference from creation
- Currently experiencing 400 errors - may be due to demo account limitations or ID mismatch
- At least one parameter must be provided for update
IMPORTANT: Use get_working_orders() first to find the correct working order ID for orders
created with create_working_order(). The dealReference is different from the working order ID.
Args:
ctx: MCP context
working_order_id: The working order ID (from get_working_orders, not dealReference from creation)
level: New price level (optional)
stop_level: New stop loss level (optional)
profit_level: New take profit level (optional)
Returns:
Dict[str, Any]: Working order update result
| write | true | unknown |
| get_activity_history Get account activity history with flexible time filtering.
This tool retrieves trading activity history. Based on real-world testing:
- lastPeriod works reliably (max 86400 seconds = 24 hours)
- Date ranges are documented but may have implementation issues in current API version
- detailed=true adds comprehensive information including market names and price levels
- deal_id filtering works for specific position activities
- FIQL filtering supports various activity types
Args:
ctx: MCP context
from_date: Start date (optional, for date range queries)
to_date: End date (optional, max 24h from from_date)
last_period: Seconds to look back (max 86400, ignored if date range provided)
detailed: Include detailed activity information
deal_id: Filter by specific position/deal ID
filter_type: FIQL filter for activity types/status
Returns:
Dict[str, Any]: Account activity history with metadata
| read | false | unknown |
| get_transaction_history Get transaction history with date ranges, lastPeriod, or transaction type filtering.
This tool retrieves the financial transaction history for your account. All parameters are optional
as per API documentation. If no parameters provided, API returns last 10 minutes of transactions.
IMPORTANT: lastPeriod is not applicable when date range (from/to) is specified.
Args:
ctx: MCP context
from_date: Start date (optional, API supports date ranges)
to_date: End date (optional, API supports date ranges)
last_period: Time period in seconds (ignored if date range provided)
transaction_type: Filter by transaction type (DEPOSIT, WITHDRAWAL, etc.)
Returns:
Dict[str, Any]: Transaction history with metadata
| read | false | unknown |
02Install & source
uvx capital-com-mcp-server
uvxpip install capital-com-mcp-server
pip- repohttps://github.com/syedair/mcp-servers/issues
- packagehttps://pypi.org/project/capital-com-mcp-server
- homepagehttps://github.com/syedair/mcp-servers
- licenseMIT
- adoption3 stars · 1 forks
05Provenance & freshness
sourcesPyPI [p4]
last_checked2026-08-16 09:08Z
next_check2026-08-18 08:50Z
cadenceevery 48h
verifiedtools_list:passed handshake:passed metadata:passed tools_list:passed handshake:passed metadata:passed metadata:passed metadata:passed metadata:passed tools_list:passed
index_statusindex — 8 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](https://mcpexplorer.com/servers/capital-com-mcp-server)
Next step
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →