AI agents · Model Context Protocol
Market data for your AI tools.
TickFeed runs an MCP server, so assistants like Claude, Cursor and Copilot can read live prices, candles and market status directly. Add it once, then just ask.
https://api.tickfeed.pro/mcpStreamable HTTPAuthorization: Bearer <your key>or X-API-KeyGet a key
Create an account (it comes with $10 free credit) and create a key in your dashboard. The key is shown once.
Add TickFeed
Pick your tool below and paste the config. It takes about a minute.
Ask
“Is gold trading right now?” Your assistant calls the tools and answers from real data.
Claude Code
Run this in your terminal. Add --scope user to make TickFeed available in every project.
claude mcp add --transport http tickfeed https://api.tickfeed.pro/mcp \ --header "Authorization: Bearer YOUR_TICKFEED_KEY"
Check it with claude mcp list; TickFeed should show Connected. Inside a session, /mcp shows its status and tools.
Share with a team using .mcp.json
Commit this file to your repository root. Each person sets TICKFEED_API_KEY in their own environment, so no key is committed.
{
"mcpServers": {
"tickfeed": {
"type": "http",
"url": "https://api.tickfeed.pro/mcp",
"headers": { "Authorization": "Bearer ${TICKFEED_API_KEY}" }
}
}
}Claude Desktop
Claude Desktop connects to remote servers that use an API key through the small mcp-remote bridge, which
needs Node.js installed. Open Settings → Developer → Edit Config and add:
{
"mcpServers": {
"tickfeed": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.tickfeed.pro/mcp",
"--header", "Authorization:${TICKFEED_AUTH}"],
"env": { "TICKFEED_AUTH": "Bearer YOUR_TICKFEED_KEY" }
}
}
}The header value lives in env because Windows can split arguments that contain spaces. The file is at
%APPDATA%\Claude\claude_desktop_config.json on Windows and
~/Library/Application Support/Claude/claude_desktop_config.json on macOS.
Quit Claude Desktop completely and reopen it (on Windows, quit from the system tray). TickFeed then appears in the tools menu of the chat box.
Cursor
Add TickFeed to ~/.cursor/mcp.json for all projects, or .cursor/mcp.json for one project:
{
"mcpServers": {
"tickfeed": {
"url": "https://api.tickfeed.pro/mcp",
"headers": { "Authorization": "Bearer YOUR_TICKFEED_KEY" }
}
}
}To keep the key out of the file, use "Bearer ${env:TICKFEED_API_KEY}" and set that variable where Cursor
can see it. Open Cursor’s MCP settings to confirm TickFeed is enabled and lists five tools.
VS Code (GitHub Copilot)
Create .vscode/mcp.json in your workspace. VS Code asks for the key the first time the server starts and
stores it securely, so it is never written to the file.
{
"inputs": [
{ "type": "promptString", "id": "tickfeed-key",
"description": "TickFeed API key", "password": true }
],
"servers": {
"tickfeed": {
"type": "http",
"url": "https://api.tickfeed.pro/mcp",
"headers": { "Authorization": "Bearer ${input:tickfeed-key}" }
}
}
}Start it from MCP: List Servers in the Command Palette, or simply ask a question in Copilot Chat’s agent mode.
Windsurf
Open Windsurf’s MCP configuration (mcp_config.json) from the Cascade MCP settings and add:
{
"mcpServers": {
"tickfeed": {
"serverUrl": "https://api.tickfeed.pro/mcp",
"headers": { "Authorization": "Bearer YOUR_TICKFEED_KEY" }
}
}
}To read the key from your environment instead, use "Bearer ${env:TICKFEED_API_KEY}". Refresh the MCP
servers list in Cascade to load the tools.
Any MCP client, or your own agent
Any client that supports Streamable HTTP can connect with the server URL and an Authorization: Bearer
header (or X-API-Key). Building your own agent in Python? Use the official MCP SDK:
import asyncio, httpx2
from mcp import ClientSession
from mcp.client.streamable_http import streamable_http_client
async def main():
headers = {"Authorization": "Bearer YOUR_TICKFEED_KEY"}
async with httpx2.AsyncClient(headers=headers) as http:
async with streamable_http_client("https://api.tickfeed.pro/mcp", http_client=http) as s:
async with ClientSession(s[0], s[1]) as session:
await session.initialize()
price = await session.call_tool("get_price", {"symbol": "XAUUSD"})
print(price.structured_content)
asyncio.run(main())Prefer plain HTTP? Everything here is also available over the REST API.
Tools.
Five read-only tools. Results are structured and include freshness and completeness, so your assistant can tell live data from a closed market.
get_pricesymbolLatest bid and ask, spread, tick time, age, and freshness: fresh, market closed or stale.get_candlessymbol, timeframe, limit, start_time, end_timeOHLC candles from M1 to D1, oldest first. Forming bars are marked incomplete; long ranges are paged.get_feed_health—Overall status and, for each instrument, whether its market is open and how fresh its data is.find_gapssymbol, timeframe, start_time, end_timeMissing intervals in the history, labelled as scheduled closures or not.list_symbols—Instruments, price precision, trading sessions and timeframes.Try asking.
- “Is gold trading right now, and how fresh is the price?”
- “Summarise how XAUUSD moved over the last 24 hourly candles.”
- “Compare EURUSD’s range today with the last five days.”
- “Were there any gaps in gold’s M5 history this week?”
- “Pull 200 H1 candles for gold and write a backtest for a moving-average crossover.”
Good to know.
- Read-only. TickFeed provides data; it never places trades.
- Same prices as REST.
get_priceandfind_gapscost $0.002 per call;get_candlescosts $0.002 per 100 bars.list_symbolsandget_feed_healthare free. Failed calls are not charged. - Times are UTC. A candle’s time is when the bar opened.
- Keep keys private. Prefer environment variables or prompted secrets over pasting keys into shared files.
Troubleshooting.
The server shows “failed to connect”
Check the URL ends in /mcp and uses https. Restart the app after editing its config file.
Tools return unauthorized (401)
The key is missing, mistyped or revoked. Make sure the header reads Bearer, a space, then your key, with no extra spaces or line breaks.
Tools return insufficient_balance
Your balance is too low for the call. Add funds in your dashboard; the tools work again immediately.
Tools return account_inactive (403)
The account has been suspended. Contact support.
Requests return rate_limited (429)
You have reached your per-minute limit. Wait for the time in Retry-After and try again.
The assistant says the market is closed
That is usually correct: gold pauses daily and forex closes at weekends. The response includes market_open and the age of the last price.