Ticker
Live ticket market data for your AI: prices, listings, sales and seat maps for concerts and sports.
Hosted MCP Server
npx add-mcp 'https://api.findticker.com/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
MCP server (https://findticker.com/docs/mcp)
Ticker serves its live event ticket market data (prices, demand, screening, alerts and event research) as a hosted MCP server. Any MCP client can query it with your Ticker account: Claude, ChatGPT, Cursor, Perplexity and others.
Getting started [#getting-started]
Add the server URL to your client, then sign in with your Ticker account when the browser window opens. There are no API keys to create, copy or store.
https://api.findticker.com/mcp
The transport is Streamable HTTP. Every client is below, with a full walkthrough for the chat apps.
There is no anonymous access. An account costs nothing at [findticker.com](https://findticker.com/auth/signup) and includes a tool-call allowance that renews every 30 days from the day you made the account; the paid plans raise it and open the deeper markets. What each plan includes is on [findticker.com/plans](https://findticker.com/plans).Step-by-step guides [#step-by-step-guides]
Clients [#clients]
ChatGPT [#chatgpt]
- Open Plugins, press Add or the plus button, then Create custom MCP server.
- Name it Ticker, add a description, and paste the server URL under Connection.
- Set authentication to OAuth, accept the risk warning, then Create as a plugin.
- Install the plugin, then sign in to Ticker when asked.
If the menu has no Create custom MCP server, turn on Developer mode in Settings first. On Business, Enterprise and Edu workspaces an admin has to allow it.
Every step is in the ChatGPT walkthrough.
Claude [#claude]
Any Claude plan, Free included. On Team and Enterprise an owner adds Ticker first.
Add to Claude- Open Customize → Connectors, then Add → Browse connectors.
- Find Ticker and click Connect.
- Sign in to Ticker and approve access.
- In a chat, open + → Connectors and switch Ticker on.
Every step is in the Claude walkthrough.
Perplexity [#perplexity]
Needs a paid Perplexity plan: Pro, Max or Enterprise.
- Open your profile, then All settings → Connectors.
- Click Custom connector, then choose Remote.
- Name it Ticker and paste the server URL.
- Set authentication to OAuth and transport to Streamable HTTP, then click Add.
- Click the connector card to sign in to Ticker and switch it on.
Every step is in the Perplexity walkthrough.
Cursor [#cursor]
Or add Ticker under mcpServers in ~/.cursor/mcp.json (or Settings → MCP → Add),
then approve OAuth:
{
"mcpServers": {
"ticker": { "url": "https://api.findticker.com/mcp" }
}
}
Claude Code [#claude-code]
claude mcp add --transport http ticker https://api.findticker.com/mcp
claude mcp login ticker
claude mcp login opens Ticker's sign-in in your browser. Inside a running session, /mcp
does the same. The first command adds Ticker for the folder you are in; add --scope user
after add to have it in every folder. Every step, with what the terminal prints, is in
the Claude Code walkthrough.
Codex CLI [#codex-cli]
codex mcp add ticker --url https://api.findticker.com/mcp
codex mcp login ticker
VS Code (Copilot) [#vs-code-copilot]
Or add the server from the terminal, then sign in over OAuth when prompted:
code --add-mcp "{\"name\":\"ticker\",\"type\":\"http\",\"url\":\"https://api.findticker.com/mcp\"}"
Gemini CLI [#gemini-cli]
gemini mcp add --transport http ticker https://api.findticker.com/mcp
Restart the Gemini CLI, then authorize when prompted.
Any other MCP client [#any-other-mcp-client]
Any Streamable HTTP client takes the server URL. The minimal config most clients accept:
{
"mcpServers": {
"ticker": {
"url": "https://api.findticker.com/mcp"
}
}
}
On first use the client follows the OAuth flow (Dynamic Client Registration and PKCE) and opens the findticker.com sign-in. There is no client secret to manage.
Authentication [#authentication]
The server uses OAuth 2.1 with PKCE. You never handle tokens by hand:
- Your client calls
/mcpand receives a401pointing at the server's OAuth metadata. - It registers itself (Dynamic Client Registration) and starts an authorization request.
- Your browser opens findticker.com to sign in and approve access.
- The client exchanges the result (with PKCE) for an access token and connects.
The access token is the server's own, separate from your findticker.com session; it is short-lived and refreshes on its own. Revoke access at any time by signing out of the connection in your client, or from your Ticker account settings.
Example prompts [#example-prompts]
| Prompt | Tools it reaches |
|---|---|
| Find NBA games in the next 30 days where resale prices dropped more than 20 percent this week but inventory is still tight. | screen_events, list_screen_columns |
| What is happening with the Oasis show at MetLife? Show me the price history and how demand has moved. | search_events, get_event_analytics, get_event_chart |
| Chart how Sabrina Carpenter's popularity rank has moved over the last three months. | get_performer_analytics |
| Save that screen as a view called Cheap and tightening, then show me what it has matched so far. | create_view, list_views, list_matches |
| Watch the three cheapest of those events and alert me when the median price falls another 10 percent. | watch_event, list_watchlist |
| Why did prices for that show move? Check the news and social coverage. | research_event |
Tool reference [#tool-reference]
The server exposes tools. Each has a page with its parameters, generated from the server's own tool list: the tools reference. A tool name from before October 15, 2026 still answers: see Old names.
Skills [#skills]
Once Ticker is connected, the free skills teach your assistant the screens and checks a seller runs with these tools.
Quotas [#quotas]
Ticker has five quotas. Each renews with your billing cycle, and one action spends exactly one of them, once. Feed requests applies only to an account that holds API keys.
| Quota | What spends one |
|---|---|
| MCP requests | Any MCP tool call except screen_events, research_event and the free list_screen_columns and get_account |
| Screener runs | screen_events, a screen in the app's screener, and a POST /v1/screen on the API |
| Event research | A fresh research_event result, or a fresh research brief on an event page |
| Ask Ticker | One message to Ask Ticker in the app, including the tools it calls for that message |
| Feed requests | API feed reads with an API key, one unit for each event returned |
A cached research result spends nothing. A screen asked in plain language spends one
screener run, the same as the screen it produces. Views and stars, and alert destinations,
are limits on what you hold, not quotas you spend. get_account returns each quota with
what is used and left; your numbers are on
findticker.com/plans.
Limits [#limits]
Some tools read the live seat log. Each call of one of these tools is heavy work for Ticker, so one account can run only a few at a time:
| Heavy tools |
|---|
get_event_sections_live, every view |
get_event_seats, every view |
get_event_sellers, views series and market |
Every other tool is light.
- Two heavy calls at a time per account. A third heavy call waits in line, first come
first served, for up to 30 seconds. When it runs after a wait, its result carries
_meta["ticker/queued_ms"], the time it waited. The answer itself is the same. - Past 30 seconds the call is refused as busy. Your heavy calls wait behind each other,
not behind other accounts' calls. When Ticker is busy overall, every caller's heavy calls
can wait briefly in one shared line, and past 30 seconds they are refused as
busy_global. - Ceilings per account: 120 heavy calls a minute and 3,000 an hour; 600 light calls a minute and 10,000 an hour. Every plan has the same ceilings. Plans differ in their allowance for the billing cycle, not in these numbers.
- One answer is at most 40,000 characters. A longer one comes back cut at the head of
its list, with
meta.truncated,meta.returned_rowsofmeta.total_rows, andmeta.next, the call that reads on.
A refused call is a tool error whose text is JSON:
{
"error": "busy",
"message": "Ticker is busy with this account's earlier calls of this kind. Wait 6 seconds, then call again. Send these calls one at a time, not all at once.",
"retry_after_seconds": 6
}
error | Meaning | What to do |
|---|---|---|
busy | The account already has heavy calls running and the line did not clear in 30 seconds. | Wait retry_after_seconds, then call again. Send heavy calls one at a time. |
busy_global | Ticker as a whole is running as many heavy calls as it can, and the shared line did not clear in 30 seconds. | Wait retry_after_seconds, then call again. |
rate_limited | The account reached a per-minute or per-hour ceiling. | Wait retry_after_seconds, then call again. |
A refused call does not count against your plan's allowance.
Researching many events at once? Send the calls one at a time, not in parallel: the answers come back as fast, and none is refused. For bulk research across hundreds of events, contact us about the API. These are current limits, not an SLA.
Troubleshooting [#troubleshooting]
The client never asks me to sign in [#the-client-never-asks-me-to-sign-in]
Remove the server and add it again, checking the URL is exactly the one above. The sign-in prompt comes from the client the first time it connects.
"The access token is invalid or expired" [#the-access-token-is-invalid-or-expired]
Your client normally refreshes tokens on its own. If the error persists, disconnect and reconnect the server to sign in again.
"Payment required" or a plan error when calling tools [#payment-required-or-a-plan-error-when-calling-tools]
Your account does not currently include that reading. See what each plan includes on the plans page, then reconnect.
"You have used all … on your plan" [#you-have-used-all--on-your-plan]
Your plan's allowance renews on the date shown in
Settings. Discovery calls like list_screen_columns do
not count against it.
"Ticker is busy with this account's earlier calls" [#ticker-is-busy-with-this-accounts-earlier-calls]
Your assistant sent more heavy calls at once than the account can run. Wait the seconds the message names and ask again, one event at a time. See Limits.
Connected, but tools are missing from the client's list [#connected-but-tools-are-missing-from-the-clients-list]
Some clients cache the tool list. Reconnect the server (or restart the client) to refresh it.
Security contact [#security-contact]
Connections are authorized per user over OAuth 2.1 (PKCE required); access tokens are short-lived and refresh tokens rotate on use. The server only ever sees your Ticker data: no marketplace accounts, no payment credentials.
Ticker data is for research, pricing and market analysis only, never for directly purchasing tickets.
Found a vulnerability? Email alim@findticker.com with reproduction steps. We read every report.