Finance Mcp

io.github.AdityaSBisht由 GitHub 帳號 AdityaSBisht 發布v0.1.2更新於 Oct 24, 2026

Live stock, crypto, SEC filings, FX and macro data for LLM agents. No API keys.

發布方自己的服務:Finance Foundation

已驗證STDIO僅桌面金融資料與分析

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理從免費公開來源取得股票、加密貨幣、匯率、SEC 申報、內部人交易與世界銀行總體經濟資料。

可以做什麼
查詢股票、ETF 與指數報價、價格歷史,並把公司名稱解析為股票代號;取得加密貨幣現貨價格與市值排行;依歐洲央行參考匯率換算貨幣;搜尋、列出並全文檢索 SEC EDGAR 申報文件,讀取依原始申報的 XBRL 財務資料;檢視 Form 4 內部人交易,並把公開市場決策與歸屬、扣稅等機械性紀錄分開;取得世界銀行 GDP、通膨、失業率等總體經濟序列。
適用情境
適合讓助理以即時公開資料回答行情、申報或總體經濟問題,例如查詢報價、比較幣種、讀取公司已揭露營收,或判斷內部人賣出是否真實。
執行需求
以 stdio 在本機執行,通常透過 npx finance-data-mcp 或本機建置的複本搭配 Node.js 啟動。不需要 API 金鑰或帳號。三個 SEC 工具需要在用戶端設定中設定 SEC_USER_AGENT 環境變數,內容為姓名與電子郵件;其他工具不需要。需要對 Yahoo Finance、CoinGecko、SEC EDGAR、ECB/Frankfurter 與世界銀行的網路連線。
安裝前請注意
SEC_USER_AGENT 包含真實姓名與電子郵件,會在每次請求時傳送給 SEC EDGAR;應在用戶端設定中設定,而非 shell。報價可能延遲約 15 分鐘且非交易所官方資料;世界銀行資料為年度且落後;內部人結果只涵蓋所請求的時間範圍。輸出僅供參考,不構成投資建議,也不保證準確性。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Finance Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

finance-mcp

Live financial data for any LLM agent. Stock quotes · crypto · SEC filings · insider trades · XBRL financials · FX · macro

[CI] [npm] [License: MIT] [Node] [MCP] [API key] [Tools]

[Animated terminal demo: an agent calls get_stock_quote and get_price_history and gets live Apple and NVIDIA market data back]

Why

Most finance APIs want a signup, a key, and a credit card before your agent can answer "what's Apple trading at?"

finance-mcp wraps five genuinely free public sources behind eleven MCP tools. No key for any of them. The only configuration is an email address, and only because the SEC insists on one.

The one you can't get anywhere else

Company insiders — officers, directors, 10% owners — must report every trade in their own stock to the SEC within two business days. It's public, it's structured, and essentially nobody reads it.

The catch is that most of it means nothing. Options vest. Shares get withheld to pay the tax on that vesting. None of it is a decision, and all of it gets reported as "insider selling."

get_insider_activity separates the two. Real output, Apple, one week in June:

OPEN-MARKET (a deliberate decision to trade)  Sold:   5 filing(s)   302.92K shares   ≈ $87,566,268.55
MECHANICAL (vesting, option exercises, tax withholding — no decision): 1 filing(s)
  Newstead Jennifer — SVP, GC and Secretary      2026-06-15  +30.10K @ —         Option exercise / conversion      2026-06-15  −16.24K @ $296.42   Shares withheld for taxes      ← not a trade
  LEVINSON ARTHUR D — Director    ★ 2026-05-06  −149.53K @ $284.57  Open-market sale               ← a real decision    ★ 2026-05-06  −100.47K @ $285.04  Open-market sale      2026-05-06  −5.00K   @ —        Gift

Same company, same month. One of those is a signal; the other is payroll. Every row links to the filing it came from.

It reports what was disclosed and does not interpret it. Insider buying and selling both have innocent explanations, and neither predicts the share price.

So we measured how often it matters

That claim is testable, so we tested it: every Form 4 filed by an insider at an S&P 100 company over twelve months — 2,969 filings — classified by whether the filing contains an actual decision to trade.

[Chart: 71.9% of insider Form 4 filings contain no decision to trade at all. 69.2% are vesting, option exercises and tax withholding; 26.2% contain an open-market sale; 2.7% are gifts only; 1.9% contain an open-market purchase.]

Roughly seven in ten insider filings contain no decision to trade at all. At the median company it's 83%.

A second result surprised us more. Corporations file Form 4s too, as 10% owners — and 53 filings, 1.8% of the sample, accounted for 65% of every disposed share. The largest single "insider" in the data was Honeywell International Inc, disposing of 317M shares of a company it was spinning off. Rank insiders by share count and the top of the list isn't people.

Method, caveats and the raw data are in analysis/. It re-runs from scratch with two commands.

Tools

ToolWhat it does
get_stock_quoteCurrent price, day/52-week range, volume — stocks, ETFs, indices
get_price_historyOHLCV candles plus period return and high/low summary
search_symbolsResolve a company name to a ticker
get_fx_rateCurrency conversion at ECB reference rates
get_crypto_priceSpot price, 24h change, market cap, volume
get_crypto_marketTop coins ranked by market cap
get_insider_activityForm 4 insider trades — open-market decisions separated from vesting/tax noise
get_sec_filingsRecent EDGAR filings with direct document URLs, filterable by form
get_sec_financialsAs-filed XBRL line items as a time series
search_sec_filingsFull-text search across every EDGAR filing since 2001
get_economic_indicatorWorld Bank macro series — GDP, inflation, unemployment, debt, trade

How it fits together

mermaid
flowchart LR    A["Claude Desktop<br/>Claude Code<br/>any MCP client"] -->|MCP over stdio| B["finance-mcp"]    B --> C["Yahoo Finance<br/><i>equities · ETFs · indices</i>"]    B --> D["CoinGecko<br/><i>crypto</i>"]    B --> E["SEC EDGAR<br/><i>filings · XBRL · insider trades</i>"]    B --> F["ECB / Frankfurter<br/><i>FX</i>"]    B --> G["World Bank<br/><i>macro</i>"]

The shared HTTP layer paces requests per host, retries 429/403/5xx with exponential backoff, honours Retry-After, and caches responses in memory — 30s for quotes, hours for filings and macro series.

Quickstart

Claude Code — no clone needed
bash
claude mcp add finance -e SEC_USER_AGENT="Your Name [email protected]" -- npx -y finance-data-mcp
From source
bash
git clone https://github.com/adididitagain/finance-mcp.gitcd finance-mcpnpm installnpm run buildclaude mcp add finance -e SEC_USER_AGENT="Your Name [email protected]" -- node "$(pwd)/dist/index.js"
Claude Desktop

Add to claude_desktop_config.json — on macOS, ~/Library/Application Support/Claude/claude_desktop_config.json — then restart the app:

json
{  "mcpServers": {    "finance": {      "command": "npx",      "args": ["-y", "finance-data-mcp"],      "env": {        "SEC_USER_AGENT": "Your Name [email protected]"      }    }  }}

To run from a local clone instead, use "command": "node" with "args": ["/absolute/path/to/finance-mcp/dist/index.js"].

Any other MCP client

The server speaks MCP over stdio. Run node dist/index.js and point your client at it.

Try it

What's Apple trading at?

Compare BTC and ETH over the last 24 hours.

Show me Microsoft's revenue for the last 5 years from their filings.

What 8-Ks has Tesla filed recently?

Which companies mention "quantum computing" in their 10-Ks?

What's India's GDP growth been over the past decade?

Convert 5000 USD to JPY.

Are Apple insiders actually selling, or is that just vesting?

Data sources

SourceUsed forKey required
Yahoo FinanceEquities, ETFs, indices, exotic FXNo
CoinGeckoCryptocurrencyNo
SEC EDGARFilings, XBRL financials, Form 4 insider tradesNo (User-Agent required)
Frankfurter / ECBFX reference ratesNo
World BankMacroeconomic indicatorsNo

Configuration

Env varRequiredPurpose
SEC_USER_AGENTFor SEC toolsEDGAR requires a User-Agent with a real name and email on every request, and returns 403 without one. Format: "Your Name [email protected]".

[!IMPORTANT] MCP clients do not pass your shell environment to the server. Set SEC_USER_AGENT in the client config shown above, not in .zshrc.

Development

bash
npm run dev      # tsc --watchnpm test         # 66 offline tests, stubbed fetch + real EDGAR fixtures, no networknpm run smoke    # drives all 11 tools against the live APIs

Notes and limitations

  • Yahoo rate-limits by IP, and it cares what you claim to be. Sending a spoofed desktop-browser User-Agent gets you throttled hard — measured 0/8 successful requests with a Chrome UA versus 8/8 with an honest finance-mcp/0.1 one, alternating back to back. This server identifies itself honestly for that reason; don't "fix" it by pretending to be a browser. FX is served from the ECB instead, which has no rate limit.
  • Quotes may be delayed up to ~15 minutes and are not exchange-official.
  • SEC XBRL figures are as-filed. get_sec_financials labels each row by the period it covers, not the fiscal year of the filing it came from — EDGAR's own fy field describes the filing, so a 10-K restating a prior year would otherwise mislabel it.
  • search_sec_filings ranks by EDGAR's relevance, which favours companies with your query in their name.
  • World Bank data is annual and typically lags one to two years.
  • Insider data is only as complete as the window you read. get_insider_activity reads the most recent limit Form 4s and reports how many it skipped — a large company files hundreds a year, so a small limit shows a recent slice, not a full picture. Form 4s are due within two business days of the trade, so there is a short reporting lag.

Disclaimer

An informational data tool. Nothing it returns is investment advice, and the data carries no accuracy or availability guarantee. Verify anything you intend to act on against an official source.

License

MIT © Aditya Bisht

來源:README.md,提交 7466fbb

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Finance 整合