tickertape-mcp
An MCP server that screens and analyzes US stocks and ETFs using Tickertape's screener data. It allows users to filter by 70+ metrics, search stocks, get details, and list available filters.
README
tickertape-mcp
An MCP server for screening and analyzing US stocks and ETFs using Tickertape's screener data, usable from any MCP client. Ask in plain language — "profitable US semiconductor stocks under 20× P/E with ROE above 20%" — and get a ranked, filterable table back.
Disclaimer. This is an unofficial project. It is not affiliated with, endorsed by, or supported by Tickertape or Smallcase. It calls an undocumented public API that may change or break at any time. Data is provided "as is", may be delayed or wrong, and is not investment advice. Only the US market is supported. Use at your own risk and review Tickertape's terms of service before use.
Features
screen_stocks— filter US stocks by any of 70+ metrics (valuation, growth, profitability, dividends, technicals, ownership, analyst ratings), plus sector / industry, with sorting and pagination.screen_etfs— screen ETFs by AUM, expense ratio, returns, yield, and fund category.list_filters— discover the available metrics, their units, value ranges, and the allowed sector/industry values.search_stocks— look up a ticker or company name.get_stock_details— a full metric snapshot for one stock or ETF, grouped by category, with a link to its Tickertape page.
It validates every metric name and value against the live filter catalog, so a typo gets a helpful "did you mean" instead of silently wrong results (see docs/api-notes.md for why that matters).
Install
Requires Node.js ≥ 18.
Claude Code (CLI)
claude mcp add tickertape -- npx -y tickertape-mcp
Claude Desktop / Cursor
Add to your MCP config (claude_desktop_config.json, or Cursor's mcp.json):
{
"mcpServers": {
"tickertape": {
"command": "npx",
"args": ["-y", "tickertape-mcp"]
}
}
}
Then restart the client. No API keys or account are needed.
Example prompts
- "Screen US stocks: market cap over $10B, P/E under 25, ROE above 15%, in Technology. Sort by dividend yield."
- "Find low-cost S&P 500 ETFs — expense ratio under 0.05%, sorted by AUM."
- "What are NVDA's valuation and profitability metrics?"
- "Which large-cap healthcare stocks are trading more than 30% below their 52-week high?"
Tools reference
| Tool | Key parameters |
|---|---|
list_filters |
category?, search? |
screen_stocks |
filters: [{metric, min?, max?}], sectors?, industries?, sort_by, sort_order, columns?, limit, offset |
screen_etfs |
filters, categories?, sort_by, sort_order, columns?, limit, offset |
search_stocks |
query, asset_type (stock|etf), limit |
get_stock_details |
ticker, asset_type, metrics? |
Metric names accept either a friendly alias (peRatioTtm, marketCap,
returnOnEquity, dividendYield, debtToEquity, expenseRatio, aum) or the raw
Tickertape label. Call list_filters to see them all. Premium metrics (e.g. forward
P/E, analyst estimates) can be shown as columns but not used to filter or sort — that
requires a Tickertape subscription.
How it works
- On first use it fetches Tickertape's filter catalog (cached in memory) to build the metric list and aliases.
search_stocks/get_stock_detailsbuild a local index of the full universe the first time they run (a few seconds), cached on disk under~/.cache/tickertape-mcp/(override withTICKERTAPE_MCP_CACHE_DIR) for 24 hours.- All output is compact markdown to keep token usage low.
See docs/api-notes.md for the reverse-engineered API contract.
Development
npm install
npm run typecheck # tsc --noEmit
npm test # vitest, uses fixtures (no network)
npm run build # bundle to dist/ with tsup
npm run smoke # live end-to-end checks against the real API (not in CI)
Inspect the server interactively:
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
Project layout
src/
index.ts entry — starts the stdio MCP server
server.ts tool registration and wiring
api.ts HTTP client for the Tickertape API
catalog.ts filter catalog: fetch, aliases, name/value resolution
match.ts builds a query body from tool input (the silent-failure guard)
universe.ts local ticker/name index with disk cache
format.ts markdown renderers
Publishing checklist
npm run typecheck && npm test && npm run buildnpm pack --dry-run— confirm the tarball contains onlydist/,README.md,LICENSE.- Test the bin:
npx ./tickertape-mcp-<version>.tgz. npm publish --access public(optionally--provenancefrom CI).
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.