Finance MCP Server

株価、暗号通貨データ、為替レート、ポートフォリオ追跡

ドキュメント

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.

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 caseActor
Yahoo Finance quotes + fundamentals via scraperYahoo Finance Scraper
Finviz screener with 100+ filtersFinviz Stock Screener
Recently funded startups (SEC Form D + TechCrunch + YC)Startup Funding Tracker
Upcoming IPOsIPO Tracker
Earnings calendar with estimatesEarnings Calendar
Treasury yield curve + bond dataTreasury Yields & Bonds
ETF holdingsETF Holdings Tracker
FX rates real-timeFX Rates Tracker
AI-callable real-estate dataReal Estate MCP Server
AI-callable news dataNews 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}