Skip to main content
Glama
SakethSripada

KalTrader MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KALTRADER_HOMENoWhere settings live. Defaults to ~/.kaltrader.~/.kaltrader
KALSHI_API_KEY_IDNoAPI key ID. Skips the keystore entirely.
KALSHI_PRIVATE_KEYNoThe private key itself. Escaped \n is fine.
KALTRADER_TOOLSETSNoComma-separated list, or all.markets,exchange,portfolio,orders
KALTRADER_LOG_LEVELNodebug, info, warn, or error.
KALTRADER_READ_ONLYNotrue to block every write.false
KALTRADER_ENVIRONMENTNodemo or production.demo
KALSHI_PRIVATE_KEY_FILENoPath to the private key file, instead of the above.
KALTRADER_MAX_ORDER_USDNoPer-order dollar limit.
KALTRADER_PAPER_TRADINGNofalse to drop the paper trading tools.true

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
kalshi_server_infoA

Report how this server is configured: which Kalshi environment it targets, whether an API key is loaded, which toolsets are on, and any limits in force. Check this first if a call fails unexpectedly.

kalshi_list_endpointsA

Search every Kalshi API endpoint, including ones not currently loaded as their own tool. Use this to find an endpoint by keyword, then call it with kalshi_call_endpoint. Returns the method, path, toolset, and whether a dedicated tool for it is loaded right now.

kalshi_describe_endpointA

Show the full input schema for one Kalshi endpoint: every path, query, and body field with its type and description. Look here before calling kalshi_call_endpoint.

kalshi_call_endpointA

Call any Kalshi API endpoint directly, including ones with no dedicated tool loaded. Paths are relative to /trade-api/v2, so use "/markets" rather than the full URL. Prefer a dedicated tool when one exists, since those validate arguments for you.

kalshi_stream_collectA

Watch Kalshi's WebSocket feed for a few seconds and return the messages that arrive. Useful for seeing live order book changes, trades, or your own fills as they happen. This is a one-shot capture, not an ongoing subscription: it connects, listens for the window you ask for, then disconnects.

kalshi_paper_orderA

Place a simulated order against the live Kalshi book. Nothing here reaches Kalshi: no real order is placed and no real money moves. Prices, fills, and settlement follow the live exchange, so the numbers track a real strategy, but the position exists only on this computer. Market orders fill immediately by walking the real order book, paying Kalshi's usual taker fee. Limit orders fill any part that crosses right now and leave the rest resting, to be matched the next time a paper tool runs. The portfolio is created on first use with a starting balance you can set here or with kalshi_paper_reset.

kalshi_paper_portfolioA

Value a simulated portfolio against live Kalshi prices: cash, every open position marked at what it could be sold for right now, realized and unrealized P&L, fees, and total return. Call this to monitor paper positions over time. It also brings the portfolio up to date first, so it is where settled markets get paid out and resting orders get matched.

kalshi_paper_cancelA

Cancel a resting simulated order and release the cash it was holding. Use kalshi_paper_portfolio to see order ids.

kalshi_paper_resetA

Create a simulated portfolio, or wipe an existing one back to a fresh cash balance. Positions, orders, and history are discarded. Use this to start a new experiment, for example "paper trade $50".

kalshi_amend_order_v2A

Amend Order (V2) Endpoint for amending the price and/or max fillable count of an existing event-market order using the V2 request/response shape. The request count is the updated total/max fillable count, equal to already filled count plus desired resting remaining count. This behavior matches the v1 amend endpoints; only the request/response shape differs. Calls POST /portfolio/events/orders/{order_id}/amend.

kalshi_apply_subaccount_transferB

Transfer Between Subaccounts Transfers funds between the authenticated user's subaccounts. Use 0 for the primary account, or 1-63 for numbered subaccounts. Set exchange_index to apply the transfer on a specific exchange shard (defaults to 0). Calls POST /portfolio/subaccounts/transfer.

kalshi_batch_cancel_orders_v2A

Batch Cancel Orders (V2) Endpoint for cancelling a batch of event-market orders using the V2 response shape. The maximum batch size scales with your tier's write budget — see Rate Limits and Tiers. Calls DELETE /portfolio/events/orders/batched.

kalshi_batch_create_orders_v2A

Batch Create Orders (V2) Endpoint for submitting a batch of event-market orders using the V2 request/response shape. The maximum batch size scales with your tier's write budget — see Rate Limits and Tiers. Calls POST /portfolio/events/orders/batched.

kalshi_batch_get_market_candlesticksA

Batch Get Market Candlesticks Endpoint for retrieving candlestick data for multiple markets. - Accepts up to 100 market tickers per request - Returns up to 10,000 candlesticks total across all markets - Returns candlesticks grouped by market_id - Optionally includes a synthetic initial candlestick for price continuity (see include_latest_before_start parameter) Calls GET /markets/candlesticks.

kalshi_cancel_order_v2A

Cancel Order (V2) Endpoint for cancelling event-market orders using the V2 response shape. Returns {order_id, client_order_id, reduced_by} rather than a full order object. Calls DELETE /portfolio/events/orders/{order_id}.

kalshi_create_order_v2A

Create Order (V2) Endpoint for submitting event-market orders using the V2 request/response shape (single-book bid/ask side and fixed-point dollar prices). The legacy /portfolio/orders endpoint will be deprecated no earlier than May 6, 2026 — clients should migrate to this path. Calls POST /portfolio/events/orders.

kalshi_create_subaccountA

Create Subaccount Creates a new subaccount for the authenticated user. This endpoint is available to all users on the Advanced API tier and above. Subaccounts are numbered sequentially starting from 1. Maximum 63 numbered subaccounts per user (64 including the primary account). Calls POST /portfolio/subaccounts.

kalshi_decrease_order_v2A

Decrease Order (V2) Endpoint for decreasing the remaining count of an existing event-market order using the V2 request/response shape. Exactly one of reduce_by or reduce_to must be provided. Calls POST /portfolio/events/orders/{order_id}/decrease.

kalshi_get_balanceA

Get Balance Endpoint for getting the balance and portfolio value of a member. Both values are returned in cents. This endpoint also accepts API keys with the 'read::portfolio_balance' scope. Calls GET /portfolio/balance.

kalshi_get_depositsB

Get Deposits Endpoint for getting the member's deposit history. Calls GET /portfolio/deposits.

kalshi_get_eventA

Get Event Endpoint for getting data about an event by its ticker. An event represents a real-world occurrence that can be traded on, such as an election, sports game, or economic indicator release. Events contain one or more markets where users can place trades on different outcomes. All events are accessible through this endpoint, even if their associated markets are older than the historical cutoff. Calls GET /events/{event_ticker}.

kalshi_get_event_fee_changesB

Get Event Fee Changes Event fees are an override layered on top of the parent series' fee structure. If fee_type_override and fee_multiplier_override are null, that indicates the override is cleared. Calls GET /events/fee_changes.

kalshi_get_event_forecast_percentilesA

Get Event Forecast Percentile History Endpoint for getting the historical raw and formatted forecast numbers for an event at specific percentiles. Calls GET /series/{series_ticker}/events/{ticker}/forecast_percentile_history.

kalshi_get_event_metadataA

Get Event Metadata Endpoint for getting metadata about an event by its ticker. Returns only the metadata information for an event. Calls GET /events/{event_ticker}/metadata.

kalshi_get_eventsA

Get Events Get all events. This endpoint excludes multivariate events. To retrieve multivariate events, use the GET /events/multivariate endpoint. All events are accessible through this endpoint, even if their associated markets are older than the historical cutoff. Calls GET /events.

kalshi_get_exchange_scheduleB

Get Exchange Schedule Endpoint for getting the exchange schedule. Calls GET /exchange/schedule.

kalshi_get_exchange_statusA

Get Exchange Status Endpoint for getting the exchange status. Calls GET /exchange/status.

kalshi_get_fillsA

Get Fills Endpoint for getting all fills for the member. A fill is when a trade you have is matched. Fills that occurred before the historical cutoff are only available via GET /historical/fills. See Historical Data for details. Calls GET /portfolio/fills.

kalshi_get_filters_for_sportsA

Get Filters for Sports Retrieve available filters organized by sport. This endpoint returns filtering options available for each sport, including scopes and competitions. It also provides an ordered list of sports for display purposes. Calls GET /search/filters_by_sport.

kalshi_get_incentive_programsB

Get Incentives List incentives with optional filters. Incentives are rewards programs for trading activity on specific markets. Calls GET /incentive_programs.

kalshi_get_marketA

Get Market Endpoint for getting data about a specific market by its ticker. A market represents a specific binary outcome within an event that users can trade on (e.g., "Will candidate X win?"). Markets have yes/no positions, current prices, volume, and settlement rules. Calls GET /markets/{ticker}.

kalshi_get_market_candlesticksA

Get Market Candlesticks Time period length of each candlestick in minutes. Valid values: 1 (1 minute), 60 (1 hour), 1440 (1 day). Candlesticks for markets that settled before the historical cutoff are only available via GET /historical/markets/{ticker}/candlesticks. See Historical Data for details. Calls GET /series/{series_ticker}/markets/{ticker}/candlesticks.

kalshi_get_market_candlesticks_by_eventA

Get Event Candlesticks End-point for returning aggregated data across all markets corresponding to an event. Calls GET /series/{series_ticker}/events/{ticker}/candlesticks.

kalshi_get_market_orderbookA

Get Market Orderbook Endpoint for getting the current order book for a specific market. The order book shows all active bid orders for both yes and no sides of a binary market. It returns yes bids and no bids only (no asks are returned). This is because in binary markets, a bid for yes at price X is equivalent to an ask for no at price (100-X). For example, a yes bid at 7¢ is the same as a no ask at 93¢, with identical contract sizes. Each side shows price levels with their corresponding quantities and order counts… Calls GET /markets/{ticker}/orderbook.

kalshi_get_market_orderbooksA

Get Multiple Market Orderbooks Endpoint for getting the current order books for multiple markets in a single request. The order book shows all active bid orders for both yes and no sides of a binary market. It returns yes bids and no bids only (no asks are returned). This is because in binary markets, a bid for yes at price X is equivalent to an ask for no at price (100-X). For example, a yes bid at 7¢ is the same as a no ask at 93¢, with identical contract sizes. Each side shows price levels with their corresponding quantit… Calls GET /markets/orderbooks.

kalshi_get_marketsC

Get Markets Filter by market status. Possible values: unopened, open, closed, settled. Leave empty to return markets with any status. - Only one status filter may be supplied at a time. - Timestamp filters will be mutually exclusive from other timestamp filters and certain status filters. | Compatible Timestamp Filters | Additional Status Filters| Extra Notes | |------------------------------|--------------------------|-------------| | min_created_ts, max_created_ts | unopened, open, empty… Calls GET /markets.

kalshi_get_milestoneA

Get Milestone Endpoint for getting data about a specific milestone by its ID. Calls GET /milestones/{milestone_id}.

kalshi_get_milestonesC

Get Milestones Minimum start date to filter milestones. Format: RFC3339 timestamp Calls GET /milestones.

kalshi_get_multivariate_eventsA

Get Multivariate Events Retrieve multivariate (combo) events. These are dynamically created events from multivariate event collections. Supports filtering by series and collection ticker. Calls GET /events/multivariate.

kalshi_get_orderB

Get Order Endpoint for getting a single order. Calls GET /portfolio/orders/{order_id}.

kalshi_get_order_queue_positionA

Get Order Queue Position Endpoint for getting an order's queue position in the order book. This represents the amount of orders that need to be matched before this order receives a partial or full match. Queue position is determined using a price-time priority. Calls GET /portfolio/orders/{order_id}/queue_position.

kalshi_get_order_queue_positionsA

Get Queue Positions for Orders Endpoint for getting queue positions for all resting orders. Queue position represents the number of contracts that need to be matched before an order receives a partial or full match, determined using price-time priority. Calls GET /portfolio/orders/queue_positions.

kalshi_get_ordersA

Get Orders Restricts the response to orders that have a certain status: resting, canceled, or executed. Orders that have been canceled or fully executed before the historical cutoff are only available via GET /historical/orders. Resting orders will always be available through this endpoint. See Historical Data for details. Calls GET /portfolio/orders.

kalshi_get_positionsC

Get Positions Restricts the positions to those with any of following fields with non-zero values, as a comma separated list. The following values are accepted: position, total_traded Calls GET /portfolio/positions.

kalshi_get_seriesA

Get Series Endpoint for getting data about a specific series by its ticker. A series represents a template for recurring events that follow the same format and rules (e.g., "Monthly Jobs Report", "Weekly Initial Jobless Claims", "Daily Weather in NYC"). Series define the structure, settlement sources, and metadata that will be applied to each recurring event instance within that series. Calls GET /series/{series_ticker}.

kalshi_get_series_fee_changesC

Get Series Fee Changes Calls GET /series/fee_changes.

kalshi_get_series_listA

Get Series List Endpoint for getting data about multiple series with specified filters. A series represents a template for recurring events that follow the same format and rules (e.g., "Monthly Jobs Report", "Weekly Initial Jobless Claims", "Daily Weather in NYC"). This endpoint allows you to browse and discover available series templates by category. Calls GET /series.

kalshi_get_settlementsB

Get Settlements Endpoint for getting the member's settlements historical track. Calls GET /portfolio/settlements.

kalshi_get_structured_targetA

Get Structured Target Endpoint for getting data about a specific structured target by its ID. Calls GET /structured_targets/{structured_target_id}.

kalshi_get_structured_targetsB

Get Structured Targets Page size (min: 1, max: 2000) Calls GET /structured_targets.

kalshi_get_subaccount_balancesA

Get All Subaccount Balances Gets balances for all subaccounts including the primary account. Calls GET /portfolio/subaccounts/balances.

kalshi_get_subaccount_nettingA

Get Subaccount Netting Gets the netting enabled settings for all subaccounts. Calls GET /portfolio/subaccounts/netting.

kalshi_get_subaccount_transfersA

Get Subaccount Transfers Gets a paginated list of all transfers between subaccounts for the authenticated user. Calls GET /portfolio/subaccounts/transfers.

kalshi_get_tags_for_series_categoriesA

Get Tags for Series Categories Retrieve tags organized by series categories. This endpoint returns a mapping of series categories to their associated tags, which can be used for filtering and search functionality. Calls GET /search/tags_by_categories.

kalshi_get_total_resting_order_valueA

Get Total Resting Order Value Endpoint for getting the total value, in cents, of resting orders. This endpoint is only intended for use by FCM members (rare). Note: If you're uncertain about this endpoint, it likely does not apply to you. Calls GET /portfolio/summary/total_resting_order_value.

kalshi_get_tradesA

Get Trades Endpoint for getting all trades for all markets. A trade represents a completed transaction between two users on a specific market. Each trade includes the market ticker, price, quantity, and timestamp information. Block trades are included in the response by default and identified by the is_block_trade field; use the is_block_trade query parameter to filter by block / non-block. This endpoint returns a paginated response. Use the 'limit' parameter to control page size (1-1000, defaults to… Calls GET /markets/trades.

kalshi_get_user_data_timestampA

Get User Data Timestamp There is typically a short delay before exchange events are reflected in the API endpoints. Whenever possible, combine API responses to PUT/POST/DELETE requests with WebSocket data to obtain the most accurate view of the exchange state. This endpoint provides an approximate indication of when the data from the following endpoints was last validated: GetBalance, GetOrder(s), GetFills, GetPositions Calls GET /exchange/user_data_timestamp.

kalshi_get_withdrawalsA

Get Withdrawals Endpoint for getting the member's withdrawal history. Calls GET /portfolio/withdrawals.

kalshi_intra_exchange_instance_transferB

Intra Account Transfer Endpoint for transferring funds within the same account. Calls POST /portfolio/intra_exchange_instance_transfer.

kalshi_update_subaccount_nettingA

Update Subaccount Netting Updates the netting enabled setting for a specific subaccount. Use 0 for the primary account, or 1-63 for numbered subaccounts. Calls PUT /portfolio/subaccounts/netting.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SakethSripada/KalTraderMCP'

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