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.

ToolRiskSide effectsApproval
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
writetrueunknown
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
readfalseunknown
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)
readfalseunknown
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.
writetrueunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
get_positions
Get all open positions. This tool retrieves all currently open trading positions. Returns: Dict[str, Any]: Open positions
readfalseunknown
get_watchlists
Get all watchlists. This tool retrieves all watchlists and their contents. Returns: Dict[str, Any]: Watchlists
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
writetrueunknown
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
readfalseunknown
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
readfalseunknown
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
readfalseunknown
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
writetrueunknown
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
readfalseunknown
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
destructivetruetrue
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
readfalseunknown
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
readfalseunknown
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
writetrueunknown
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
readfalseunknown
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
readfalseunknown

02Install & source
uvx capital-com-mcp-server
uvx
pip install capital-com-mcp-server
pip

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_statusindex8 unique facts >= 5

06Badge

Add the “as seen on MCPExplorer” badge to your README. capital-com-mcp-server MCP — as seen on mcpexplorer.com

[![capital-com-mcp-server MCP — as seen on mcpexplorer.com](https://mcpexplorer.com/badge/capital-com-mcp-server.svg)](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 →
capital-com-mcp-server — MCPExplorer