Gangtise Ultra MCP Server
Provides standardized access to Hong Kong stock market data and professional research reports, including broker insights and company notices. It enables intelligent searching, batch queries, and preset analysis templates for market sentiment and investment logic.
README
Gangtise Ultra MCP Server
标准化的港股/研报数据 MCP Server,基于 FastMCP 框架,使用 Streamable HTTP 传输协议。
特性
- 🚀 FastMCP 标准化 - 严格遵循 MCP 协议标准,使用 Pydantic V2 Literal 类型生成干净的 JSON Schema
- 📊 丰富的资源类型 - 支持券商研报、首席观点、公司公告等 8 种资源类型
- 🔍 智能搜索 - 支持单条搜索和批量搜索,Literal 类型严格约束参数
- 📝 预设提示词 - 内置每日简报、竞对分析、投资逻辑等场景模板
- 🔗 资源溯源 - 支持通过 URI 获取文档原文
- ⚡ 高性能 - 标准中间件栈(缓存/日志/错误处理)+ 并发控制 + 指数退避重试
项目结构
gangtise_ultra/
├── main.py # 入口 + 中间件栈配置
├── config.py # 环境变量配置
├── ecosystem.config.js # PM2 配置
├── pyproject.toml # 项目依赖
├── core/
│ ├── auth.py # 认证(TokenVerifier + URL 签名)
│ ├── client.py # HTTP 客户端(重试 / 并发控制)
│ ├── utils.py # 时间解析 / 结果清洗 / URL 签名
│ └── exceptions.py # 异常定义
├── models/
│ ├── enums.py # 枚举类型(资源类型 / 知识库 / 时间范围)
│ └── api_schema.py # Pydantic 模型(内部使用)
├── features/
│ ├── tools.py # MCP Tools(Literal 类型 + ToolError)
│ ├── resources.py # MCP Resources
│ ├── prompts.py # MCP Prompts
│ └── http_routes.py # HTTP 代理路由
├── assets/
│ └── prompts.json # 提示词模板
└── logs/ # 日志目录
快速开始
1. 配置环境变量
创建 .env 文件:
# Gangtise API 认证(二选一)
# 方式一:直接使用 accessToken
GANGTISE_API_KEY=your_access_token
# 方式二:使用 accessKey/secretAccessKey
GANGTISE_ACCESS_KEY=your_access_key
GANGTISE_SECRET_KEY=your_secret_key
# MCP Server 配置
FASTMCP_PORT=8009
2. 安装依赖
cd /home/gangtise_ultra
pip install -e .
# 或
pip install fastmcp pydantic pydantic-settings httpx python-dotenv
3. 启动服务
直接运行
python main.py
使用 PM2
pm2 start ecosystem.config.js
pm2 logs gangtise-ultra
API 概览
Tools (工具)
| 工具名 | 描述 |
|---|---|
search_knowledge |
知识库搜索,支持资源类型、时间范围等筛选 |
batch_search |
批量搜索,一次最多 5 个查询 |
get_resource_types |
获取所有支持的资源类型 |
Resources (资源)
| URI | 描述 |
|---|---|
gangtise://document/{type}/{id} |
获取文档原文/溯源链接 |
gangtise://knowledge/{query} |
快速搜索 |
gangtise://api/status |
服务状态 |
gangtise://help |
使用帮助 |
gangtise://schema/tools |
工具 Schema |
Prompts (提示词)
| 提示词 | 描述 |
|---|---|
daily_briefing |
每日简报 - 行业最新动态 |
competitor_analysis |
竞对分析 - 竞争格局分析 |
investment_thesis |
投资逻辑 - 投资框架整理 |
market_sentiment |
市场情绪 - 板块情绪分析 |
event_tracking |
事件追踪 - 事件影响跟踪 |
summarize_report |
报告总结 - 研报要点提取 |
knowledge_analysis |
知识分析 - 主题深度分析 |
system_context |
系统上下文 - 输出规范设置 |
资源类型
| 名称 | 值 | 描述 | 可下载 |
|---|---|---|---|
BROKER_REPORT |
10 | 券商研究报告 | ✅ |
INTERNAL_REPORT |
20 | 内部研究报告 | ✅ |
ANALYST_OPINION |
40 | 首席分析师观点 | ❌ |
COMPANY_NOTICE |
50 | 公司公告 | ✅ |
MEETING_MINUTES |
60 | 会议平台纪要 | ✅ |
SURVEY_NOTES |
70 | 调研纪要公告 | ✅ |
WEB_RESOURCE |
80 | 网络资源纪要 | ✅ |
INDUSTRY_OFFICIAL |
90 | 产业公众号 | ✅ |
知识库类型
| 名称 | 值 | 描述 |
|---|---|---|
SYSTEM |
system_knowledge_doc | 系统库(目前唯一可用) |
时间范围
| 值 | 描述 |
|---|---|
1d |
近 1 天 |
1w |
近 1 周 |
1m |
近 1 月(默认) |
1q |
近 1 季度 |
6m |
近 6 月 |
1y |
近 1 年 |
all |
全部时间 |
使用示例
搜索比亚迪研报
{
"tool": "search_knowledge",
"arguments": {
"query": "比亚迪",
"resource_types": ["BROKER_REPORT"],
"time_range": "1m",
"top": 5
}
}
批量查询多家公司
{
"tool": "batch_search",
"arguments": {
"queries": ["比亚迪", "宁德时代", "特斯拉"],
"resource_types": ["BROKER_REPORT", "ANALYST_OPINION"],
"top": 3
}
}
使用每日简报提示词
{
"prompt": "daily_briefing",
"arguments": {
"industry": "新能源汽车",
"company": "比亚迪"
}
}
参数标准化
本服务使用 Literal 类型 和 Pydantic Field 约束 生成严格、干净的 JSON Schema, 使 LLM 客户端能准确理解每个参数的类型和可选值:
| 参数 | 类型 | 约束 |
|---|---|---|
query |
string |
必填 |
top |
integer |
范围 1-20,默认 10 |
resource_types |
array[Literal] |
可选,枚举值见下方资源类型表 |
time_range |
Literal |
枚举: 1d, 1w, 1m, 1q, 6m, 1y, all |
错误处理遵循 MCP 标准:
- 参数校验错误 → FastMCP/Pydantic 自动返回结构化验证错误
- 业务逻辑错误 → 通过
ToolError返回 MCP 标准错误响应 - 未预期异常 → 框架自动捕获并返回安全的错误信息
PM2 常用命令
# 启动服务
pm2 start ecosystem.config.js
# 查看日志
pm2 logs gangtise-ultra
# 重启服务
pm2 restart gangtise-ultra
# 停止服务
pm2 stop gangtise-ultra
# 删除服务
pm2 delete gangtise-ultra
# 监控面板
pm2 monit
# 保存进程列表(开机自启)
pm2 save
pm2 startup
配置说明
环境变量
| 变量名 | 默认值 | 描述 |
|---|---|---|
GANGTISE_API_KEY |
- | 直接使用的 accessToken |
GANGTISE_ACCESS_KEY |
- | 用于获取 token 的 accessKey |
GANGTISE_SECRET_KEY |
- | 用于获取 token 的 secretAccessKey |
FASTMCP_PORT |
8009 | 服务端口 |
FASTMCP_HOST |
0.0.0.0 | 监听地址 |
GANGTISE_API_CONCURRENCY |
3 | API 并发限制 |
GANGTISE_CACHE_TTL_SECONDS |
900 | 缓存 TTL(秒) |
GANGTISE_REQUEST_TIMEOUT |
20 | 请求超时(秒) |
GANGTISE_MAX_RETRIES |
3 | 最大重试次数 |
技术栈
- FastMCP 2.5+ - MCP Server 框架(含标准中间件支持)
- Pydantic V2 - 数据验证 + JSON Schema 生成
- httpx - 异步 HTTP 客户端
- uvicorn - ASGI 服务器
- PM2 - 进程管理
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。