futu-opend-mcp
Read-only MCP server that exposes Futu OpenD's investment-research quote APIs (stocks, options, futures, financials, news, etc.) as MCP tools, leveraging an already-running OpenD gateway with no separate authentication.
README
futu-opend-mcp
An MCP server that exposes Futu OpenD's read-only investment-research quote APIs (stock/option/warrant/futures prices, financials, news/announcements, shareholders, institutions, macro) as MCP tools. It borrows your already-running, logged-in Futu OpenD gateway - no separate auth. No trading, no subscriptions.
It wraps the official Futu skill pack unmodified, so it stays in sync with Futu's own field-parsing logic.
Install & run
Claude Code / Claude Desktop (stdio)
claude mcp add futu-opend-mcp -- uvx futu-opend-mcp
Or from git before a PyPI release:
claude mcp add futu-opend-mcp -- uvx --from git+https://github.com/ER-EPR/futu-opend-mcp futu-opend-mcp
Open WebUI via mcpo (HTTP)
uvx mcpo --port 8000 -- futu-opend-mcp
# OpenAPI at http://localhost:8000, docs at /docs
MCP JSON config
Add to ~/.claude/settings.json, .mcp.json, or Claude Desktop config:
Remote OpenD (with encryption):
{
"mcpServers": {
"futu-opend": {
"command": "uvx",
"args": ["futu-opend-mcp"],
"env": {
"FUTU_OPEND_HOST": "your-opend-host",
"FUTU_OPEND_PORT": "11111",
"FUTU_OPEND_ENCRYPT": "true",
"FUTU_OPEND_RSA_KEY": "-----BEGIN RSA PRIVATE KEY-----\\nMIIC...\\n-----END RSA PRIVATE KEY-----"
}
}
}
}
Local OpenD (no encryption):
{
"mcpServers": {
"futu-opend": {
"command": "uvx",
"args": ["futu-opend-mcp"],
"env": {
"FUTU_OPEND_ENCRYPT": "false"
}
}
}
}
Extract the RSA key for the env var:
docker exec futu-opend cat /rsa/rsa_private_pkcs1.pem | awk '{printf "%s\\n", $0}'
Configuration (env vars)
| Var | Default | Purpose |
|---|---|---|
FUTU_OPEND_HOST |
127.0.0.1 |
OpenD host |
FUTU_OPEND_PORT |
11111 |
OpenD port |
FUTU_OPEND_RSA_KEY |
- | inline PEM of the shared RSA private key |
FUTU_OPEND_RSA_KEY_FILE |
- | path to the PEM file (alternative to above) |
FUTU_OPEND_ENCRYPT |
true |
proto encryption; false for local 127.0.0.1 OpenD |
FUTU_OPEND_LOG_LEVEL |
INFO |
logging level |
OpenD and the SDK share one RSA private key (PKCS#1 1024-bit). Get it from a dockerized
OpenD with: docker compose logs opend | grep -A20 'NEW RSA PRIVATE KEY'.
Tools
~50 read-only tools across: price/quote, search, screening, financials, research/valuation,
corporate actions, shareholders, profile, capital flow, short interest, options, option
underlying IV/HV, warrants/futures, plates, industrial chains, institutions, macro,
dividends, IPO, and diagnostics. See docs/superpowers/specs/2026-07-10-futu-opend-mcp-design.md.
Development
pip install -e ".[dev]"
pytest -q -m "not integration" # unit tests (no OpenD needed)
ruff check .
Live-OpenD integration tests are marked integration and skip themselves when OpenD is
unreachable. Re-vendor the official skill pack with ./scripts/sync_skill.sh.
Attribution
Wraps the official Futu futuapi skill pack (vendored under
src/futu_opend_mcp/_skill/futuapi/, unmodified). Legal terms in that folder apply.
License
MIT.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。