FinMind-MCP
FinMind 官方 Model Context Protocol server。 讓 Claude、Gemini CLI、Cursor、Windsurf 等支援 MCP 的 AI 工具,能用自然語言查 FinMind 75+ 種台股、期權、總經與全球金融資料。
倉庫同時收錄 FinMind Custom GPT 的 OpenAPI Action schema 與
編譯 instructions 工具——MCP server 與 Custom GPT 共用一份知識包
(knowledge/)。
快速開始
# 取 Token: https://finmindtrade.com/analysis/#/account/user
export FINMIND_TOKEN=your-token
# 一行裝
uvx finmind-mcp
# 或
pipx install finmind-mcp
在各 host 啟用
| Host | 安裝指引 |
|---|---|
| Claude Desktop | 一鍵安裝:下載 finmind.mcpb 點兩下 → 詳見 install/claude-desktop.md |
| Claude Code | install/claude-code.md |
| Cursor | install/cursor.md |
| Windsurf | install/windsurf.md |
| Gemini CLI | install/gemini-cli.md |
| Codex CLI | install/codex.md |
Windows 使用者:請先看 install/windows.md —— 含
uv/pipx安裝、PowerShell 環境變數、各 host 設定檔的 Windows 路徑,以及「host 找不到finmind-mcp指令」等常見問題。
範例查詢
- 「台積電最近一個月股價」
- 「2330 三大法人近一週買賣」
- 「台積電今年每月營收」
- 「美元對台幣匯率近半年走勢」
完整範例見 knowledge/examples.md。
倉庫結構
FinMind-MCP/
├── src/finmind_mcp/ # MCP server source
├── tests/ # pytest 31 個測試
├── smoke.py # stdio smoke test
├── knowledge/ # SSOT markdown(dataset、行為規則、錯誤腳本、Q&A)
├── chatgpt/ # Custom GPT artifacts(OpenAPI + build script)
├── install/ # 各 host 安裝指引
├── mcpb/ # Claude Desktop 擴充套件(.mcpb)的 manifest 與進入點
└── docs/ # 設計 spec 與實作 plan
開發
uv venv --python 3.10
source .venv/bin/activate
uv pip install -e ".[dev]"
uv run pytest -v # 31 tests
uv run python smoke.py # stdio integration check
發佈
兩條 distribution(MCP 與 ChatGPT)共用一份 knowledge/,但發佈方式不同。
MCP server(Claude / Gemini / Cursor / Windsurf 線)— 推 tag 全自動
改完 knowledge/ 或程式碼後,推一個版本 tag 就好:GitHub Actions(.github/workflows/publish.yml)會自動 uv build → twine check → 用 PyPI Trusted Publishing(OIDC)發 PyPI。版本號由 tag 經 hatch-vcs 決定,不用改 pyproject.toml。
uv run pytest -q # 先確認測試過(CI 也會再跑一次)
git tag v0.1.0
git push origin v0.1.0 # → CI 自動 build + 發 PyPI
PyPI 發佈成功後,同一個 workflow 會打包 Claude Desktop 擴充套件 finmind.mcpb(finmind-mcp 釘在同一版本)並附加到該 tag 的 GitHub Release,下載連結 releases/latest/download/finmind.mcpb 會自動指向最新版。本機打包測試:
python3 scripts/build_mcpb.py --dev # 需要 Node.js;--dev 用本機原始碼
python3 scripts/check_mcpb.py # 模擬 Claude Desktop 解壓、啟動、MCP 握手
新增 tool 時記得同步 mcpb/manifest.json 的 tools(tests/test_mcpb.py 會擋)。
knowledge/ 由 hatch force-include 打包進 wheel(finmind_mcp/_knowledge/),server runtime 直接讀、不用 compile;發版後用戶 uvx finmind-mcp / pipx install finmind-mcp 即抓到新版。
首次需在 PyPI 設好 trusted publisher(project
finmind-mcp/ repoFinMind/FinMind-MCP/ workflowpublish.yml/ envpypi)。
Custom GPT(ChatGPT 線)— 產物自動 build、建 GPT 手動
GPT 的輸入由 chatgpt/build_instructions.py 編出來,CI 每次 push/PR 都會驗證它能 build 且 instructions 在 8000 字上限內。但 OpenAI 沒有公開 API 可程式化建立/更新 Custom GPT,最後一步要手動在 ChatGPT builder 完成:
python chatgpt/build_instructions.py
# 產出(gitignored,每次重生):
# - chatgpt/instructions.txt → 貼到 Custom GPT 的 instructions
# - chatgpt/knowledge_bundle.md → 上傳到 Custom GPT 的 Knowledge files
# - chatgpt/openapi.yaml → 在 Custom GPT Action 匯入(Bearer auth)
knowledge/ 改版後重跑上面指令、把三個檔重貼/重傳到 GPT 即可。各 host 的 MCP 安裝方式見 install/*.md。
License
Metadata
Release files for finmind-mcp 0.0.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| finmind_mcp-0.0.11.tar.gz | 43.9 kB | With provenance | Details for finmind_mcp-0.0.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| finmind_mcp-0.0.11-py3-none-any.whl | Python 3 | none | any | Details for finmind_mcp-0.0.11-py3-none-any.whl |
Total release size: 91.8 kB
Release files / finmind_mcp-0.0.11.tar.gz
| Download URL | finmind_mcp-0.0.11.tar.gz |
|---|---|
| Size | 43.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
18436ab99ec519a3c3839269c74a6e7799372dea7ce79088f88b749c8e768534
|
|
BLAKE2b-256 checksum How to use checksums |
f8178a6bd9858ee808e56550a85438fe97e124d34976b2da4807048a42fa8d87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / finmind_mcp-0.0.11-py3-none-any.whl
| Download URL | finmind_mcp-0.0.11-py3-none-any.whl |
|---|---|
| Size | 47.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c087080d1ce22eae56a2fad371af4ebc710ce2bddd92045801e90e7b2423fddc
|
|
BLAKE2b-256 checksum How to use checksums |
2a1965d64751d895e128de561514e34cc7ad9d66f278d285a4c70d062875a863
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logSecurity for finmind-mcp 0.0.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for finmind_mcp-0.0.11.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.