Finance MCP Server
Preços de ações, dados de criptomoedas, taxas de câmbio e acompanhamento de portfólio
Documentação
Finance MCP Server — Stock Data, Screener, Crypto & FX for AI (nexgendata/finance-mcp-server) Actor
MCP server giving AI agents (Claude, Cursor, n8n) live market data via five tools: get_stock_data (price, P/E, market cap, dividend yield via Yahoo Finance), screen_stocks (Finviz), get_crypto_prices (CoinGecko), get_exchange_rates and track_crypto_portfolio. Pay-per-result Bloomberg alternative.
- URL: https://apify.com/nexgendata/finance-mcp-server.md
- Developed by: NexGenData (community)
- Categories: AI, Automation, MCP servers
- Stats: 19 total users, 4 monthly users, 100.0% runs succeeded, 0 bookmarks
- User rating: No ratings yet
Pricing
from $10.00 / 1,000 results
This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event
What's an Apify Actor?
Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases. In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours, and optionally produces a well-defined JSON output, datasets with results, or files in key-value store. In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server. Actors are written with capital "A".
How to integrate an Actor?
If asked about integration, you help developers integrate Actors into their projects. You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready. The best way to integrate Actors is as follows.
In JavaScript/TypeScript projects, use official JavaScript/TypeScript client:
npm install apify-client
In Python projects, use official Python client library:
pip install apify-client
In shell scripts, use Apify CLI:
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash
In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).
If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).
For usage examples, see the [API](#api) section below.
For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).
# README
## 💹 Finance MCP Server — Stock Data, Screener, Crypto & FX for AI Agents
Give Claude, Cursor, or any MCP agent live market data without a Bloomberg seat or a vendor API key. This Model Context Protocol server exposes five tools so an AI agent can pull a stock's price and fundamentals, screen US equities, check crypto prices, and read FX rates inside one reasoning chain — a pay-per-result alternative to the $24K/year terminal for non-microsecond use cases.
### What this MCP server does
Live equity, crypto, and currency data is scattered across Yahoo Finance, Finviz, CoinGecko, and FX feeds — each with its own API. This server aggregates them behind one MCP connection and returns clean JSON, so an agent picks the right tool and reasons over the result with zero glue code. Base Claude or GPT cannot fetch any of this live; this returns verified current data.
### Tools exposed via MCP
This server exposes **five** tools:
- `get_stock_data` — stock market data for a `ticker` from Yahoo Finance: price, volume, market cap, P/E ratio, dividend yield, and historical data.
- `screen_stocks` — screen US stocks with the Finviz screener (`screener_url`, `max_results`): filter by market cap, sector, P/E, and other metrics.
- `get_crypto_prices` — cryptocurrency prices and market data from CoinGecko (`coins`, `max_results`): price, market cap, 24h change, volume.
- `get_exchange_rates` — current currency exchange rates for major world currencies (`base_currency`).
- `track_crypto_portfolio` — real-time prices for a portfolio of coins (`coins`): current prices, 24h changes, and market caps.
Each tool returns clean structured JSON the agent can reason over and chain across calls.
### Why this beats a Bloomberg seat for AI workflows
| Feature | NexGenData Finance MCP | Bloomberg Terminal | Single-vendor stock API |
|---|---|---|---|
| AI-agent integration | Native MCP (Claude, Cursor, n8n) | None | Build it yourself |
| Time-to-first-call | Under 60 seconds | Sales cycle + hardware | API key + glue code |
| Stock data + fundamentals (P/E, market cap, yield) | Yes (`get_stock_data`) | Yes | Varies |
| US equity screener | Yes (`screen_stocks`) | Yes | Rarely |
| Crypto prices + portfolio tracking | Yes | Limited | Separate vendor |
| FX rates | Yes | Yes | Separate vendor |
| Auth | Apify API token | Bloomberg license | Vendor API key |
For prototyping and non-microsecond research, this gives an AI agent direct market data without an enterprise contract.
### Use cases
- **AI equity-research analyst** — pull `get_stock_data`, screen comparables with `screen_stocks`, draft a thesis.
- **Trading co-pilot** — answer "screen semis under $50B by P/E" via `screen_stocks`.
- **Crypto dashboard agent** — `get_crypto_prices` + `track_crypto_portfolio` for live portfolio commentary.
- **FX-aware finance chatbot** — convert and quote currencies with `get_exchange_rates`.
- **Bloomberg replacement for prototyping** — wire real stock fundamentals into an LLM app without a seat license.
### Connect to Claude Desktop
```json
{
"mcpServers": {
"nexgendata-finance": {
"url": "https://nexgendata--finance-mcp-server.apify.actor/mcp",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}
Sample call and response
Get stock data for a ticker:
{
"name": "get_stock_data",
"arguments": { "ticker": "NVDA" }
}
{
"text": "Retrieved stock data for NVDA",
"structuredContent": {
"ticker": "NVDA",
"data": [
{
"symbol": "NVDA",
"price": 131.26,
"marketCap": 3210000000000,
"peRatio": 48.2,
"dividendYield": 0.0003,
"volume": 198000000,
"dayRange": "128.10 - 133.40"
}
]
}
}
FAQ
Which MCP clients work? Any MCP-compliant client — Claude Desktop, Cursor, custom LangChain agents, Anthropic SDK code, and n8n's MCP node.
Where does the data come from? Live aggregation from public market data sources — Yahoo Finance, Finviz, CoinGecko, and FX feeds — fetched at call time.
Real-time or delayed quotes? US equity quotes are delayed roughly 15 minutes (industry standard for non-licensed feeds). Crypto and FX are current.
Is this a Bloomberg alternative? For AI-agent prototyping and non-microsecond research, yes — it gives an agent live stock fundamentals, a screener, crypto, and FX without a terminal seat.
Why MCP vs a normal API? With MCP the LLM picks tools dynamically — you write zero tool-calling glue. With REST you build the integration every time.
Related NexGenData actors
| Use case | Actor |
|---|---|
| Yahoo Finance quotes + fundamentals via scraper | Yahoo Finance Scraper |
| Finviz screener with 100+ filters | Finviz Stock Screener |
| Recently funded startups (SEC Form D + TechCrunch + YC) | Startup Funding Tracker |
| Upcoming IPOs | IPO Tracker |
| Earnings calendar with estimates | Earnings Calendar |
| Treasury yield curve + bond data | Treasury Yields & Bonds |
| ETF holdings | ETF Holdings Tracker |
| FX rates real-time | FX Rates Tracker |
| AI-callable real-estate data | Real Estate MCP Server |
| AI-callable news data | News MCP Server |
Home: thenextgennexus.com Full catalog: apify.com/nexgendata
Actor input Schema
Actor input object example
{}
API
You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.
JavaScript example
import { ApifyClient } from 'apify-client';
// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
token: '<YOUR_API_TOKEN>',
});
// Prepare Actor input
const input = {};
// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/finance-mcp-server").call(input);
// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.dir(item);
});
// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs
Python example
from apify_client import ApifyClient
# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")
# Prepare the Actor input
run_input = {}
# Run the Actor and wait for it to finish
run = client.actor("nexgendata/finance-mcp-server").call(run_input=run_input)
# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start
CLI example
echo '{}' |
apify call nexgendata/finance-mcp-server --silent --output-dataset
MCP server setup
{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=nexgendata/finance-mcp-server",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}
OpenAPI specification
{
"openapi": "3.0.1",
"info": {
"title": "Finance MCP Server — Stock Data, Screener, Crypto & FX for AI",
"description": "MCP server giving AI agents (Claude, Cursor, n8n) live market data via five tools: get_stock_data (price, P/E, market cap, dividend yield via Yahoo Finance), screen_stocks (Finviz), get_crypto_prices (CoinGecko), get_exchange_rates and track_crypto_portfolio. Pay-per-result Bloomberg alternative.",
"version": "0.0",
"x-build-id": "vHlrgYUcLmX0Nt3kS"
},
"servers": [
{
"url": "https://api.apify.com/v2"
}
],
"paths": {
"/acts/nexgendata~finance-mcp-server/run-sync-get-dataset-items": {
"post": {
"operationId": "run-sync-get-dataset-items-nexgendata-finance-mcp-server",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/acts/nexgendata~finance-mcp-server/runs": {
"post": {
"operationId": "runs-sync-nexgendata-finance-mcp-server",
"x-openai-isConsequential": false,
"summary": "Executes an Actor and returns information about the initiated run in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/runsResponseSchema"
}
}
}
}
}
}
},
"/acts/nexgendata~finance-mcp-server/run-sync": {
"post": {
"operationId": "run-sync-nexgendata-finance-mcp-server",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
}
},
"components": {
"schemas": {
"inputSchema": {
"type": "object",
"properties": {}
},
"runsResponseSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"actId": {
"type": "string"
},
"userId": {
"type": "string"
},
"startedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"finishedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"status": {
"type": "string",
"example": "READY"
},
"meta": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"example": "API"
},
"userAgent": {
"type": "string"
}
}
},
"stats": {
"type": "object",
"properties": {
"inputBodyLen": {
"type": "integer",
"example": 2000
},
"rebootCount": {
"type": "integer",
"example": 0
},
"restartCount": {
"type": "integer",
"example": 0
},
"resurrectCount": {
"type": "integer",
"example": 0
},
"computeUnits": {
"type": "integer",
"example": 0
}
}
},
"options": {
"type": "object",
"properties": {
"build": {
"type": "string",
"example": "latest"
},
"timeoutSecs": {
"type": "integer",
"example": 300
},
"memoryMbytes": {
"type": "integer",
"example": 1024
},
"diskMbytes": {
"type": "integer",
"example": 2048
}
}
},
"buildId": {
"type": "string"
},
"defaultKeyValueStoreId": {
"type": "string"
},
"defaultDatasetId": {
"type": "string"
},
"defaultRequestQueueId": {
"type": "string"
},
"buildNumber": {
"type": "string",
"example": "1.0.0"
},
"containerUrl": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "integer",
"example": 1
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
},
"usageTotalUsd": {
"type": "number",
"example": 0.00005
},
"usageUsd": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "number",
"example": 0.00005
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
}
}
}
}
}
}
}
}