Finnhub MCP服务器
模型上下文协议(MCP)服务器,提供对Finnhub财务数据API的访问,使LLM能够检索实时股票报价、公司简介、新闻、财务指标等。
特性
可用工具
- finnhub_get-quote -获取实时股票报价,包括价格、变化和每日统计数据
- finnhub_get_公司简介 -获取全面的公司信息,包括行业、市值和详细信息
- finnhub \_公司新闻 -获取特定公司的最新新闻文章
- finnhub_get_market_news -按类别获取一般市场新闻(一般、外汇、加密、合并)
- finnhub \_蜡烛 -获取历史烛台(OHLCV)价格数据
- finnhub_get_基础金融 -获取财务指标和比率(利润率、增长、估值)
- finnhub \_收益_惊喜 -获取历史收益与估计值
- finnhub_get_推荐_trends -获取分析师买入/持有/卖出建议
- finnhub_get_公司_同行 -获取竞争对手公司列表
- finnhub_get_inder_交易 -获取内幕交易活动
- finnhub \_符号_查找 -按公司名称搜索股票代码
先决条件
- Node.js 18+
- Finnhub API密钥(在 https://finnhub.io/register)
- 对于Vercel部署:Vercel帐户
安装
1.克隆或下载此存储库
git clone
cd finnhub-mcp-server2.安装依赖项
npm install3.设置环境变量
创建一个 .env 项目根目录中的文件:
cp .env.example .env编辑 .env 并添加您的Finnhub API密钥:
FINNHUB_API_KEY=your_actual_api_key_here
TRANSPORT=stdio4.建设项目
npm run build用法
地方发展(标准交通)
对于使用Claude Desktop或其他MCP客户端进行本地开发:
npm start服务器将使用stdio传输运行,这适用于本地MCP客户端。
HTTP服务器(用于远程部署)
要作为HTTP服务器运行:
TRANSPORT=http npm start服务器将于启动 http://localhost:3000/mcp 默认情况下。
部署到Vercel
第一步:准备你的项目
确保您的项目已构建并准备就绪:
npm run build步骤2:安装Vercel CLI(可选)
npm install -g vercel步骤3:通过Vercel CLI进行部署
从您的项目目录:
vercel按照提示操作:
- 确认项目设置
- 设置项目(选择默认设置)
- 部署
步骤4:在Vercel上设置环境变量
部署后,您需要添加Finnhub API密钥:
通过Vercel仪表板:
- 转到您的项目 vercel.com
- 导航到“设置”→ 环境变量
- 添加一个新变量:
- 姓名: FINNHUB_API_KEY - 价值:您的Finnhub API密钥 - 环境:生产(必要时预览)
- 点击“保存”
通过Vercel命令行界面:
vercel env add FINNHUB_API_KEY出现提示时:
- 输入您的Finnhub API密钥
- 选择环境(生产、预览、开发)
步骤5:重新部署
添加环境变量后,重新部署:
vercel --prod步骤6:测试部署
您的服务器将在以下位置可用:
https://your-project-name.vercel.app/mcp测试运行状况端点:
curl https://your-project-name.vercel.app/health您应该看到:
{"status":"ok","server":"finnhub-mcp-server","version":"1.0.0"}替代部署:通过Git集成
1.推送到GitHub
git init
git add .
git commit -m "Initial commit"
git remote add origin
git push -u origin main2.导入Vercel
- 首选 vercel.com/new
- 点击“导入Git仓库”
- 选择您的GitHub存储库
- 配置项目:
- 框架预设:其他 - 构建命令: npm run build - 输出目录:保留默认值
- 添加环境变量:
- 姓名: FINNHUB_API_KEY - 价值:您的API密钥
- 点击“部署”
与MCP客户端一起使用
Claude桌面配置
添加到您的Claude Desktop配置文件中:
对于本地(stdio):
{
"mcpServers": {
"finnhub": {
"command": "node",
"args": ["/path/to/finnhub-mcp-server/dist/index.js"],
"env": {
"FINNHUB_API_KEY": "your_api_key_here"
}
}
}
}对于Vercel部署(HTTP):
{
"mcpServers": {
"finnhub": {
"url": "https://your-project-name.vercel.app/mcp"
}
}
}API费率限制
免费的Finnhub API层包括:
- 每分钟60个API调用
- 可用的各种数据端点
对于生产用途,请考虑升级您的Finnhub计划。
工具示例
获取股票报价
"Get me the current price of Apple stock"
→ Uses finnhub_get_quote with symbol="AAPL"获取公司信息
"Tell me about Tesla"
→ Uses finnhub_get_company_profile with symbol="TSLA"获取最新消息
"What's the latest news about Microsoft?"
→ Uses finnhub_get_company_news with symbol="MSFT"获取财务指标
"Show me Apple's financial ratios"
→ Uses finnhub_get_basic_financials with symbol="AAPL"查找符号
"What's the ticker symbol for Amazon?"
→ Uses finnhub_symbol_lookup with query="Amazon"项目结构
finnhub-mcp-server/
├── src/
│ ├── index.ts # Main server entry point
│ ├── constants.ts # Configuration constants
│ ├── types.ts # TypeScript type definitions
│ ├── schemas/ # Zod validation schemas
│ │ └── index.ts
│ ├── services/ # API services
│ │ ├── api.ts # Finnhub API client
│ │ └── formatting.ts # Response formatting utilities
│ └── tools/ # MCP tool implementations
│ ├── quote.ts # Stock quote tool
│ ├── company.ts # Company profile tool
│ ├── news.ts # News tools
│ ├── candle.ts # Price history tool
│ ├── financials.ts # Financial metrics tools
│ └── additional.ts # Additional tools
├── dist/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
├── vercel.json # Vercel configuration
├── .env.example # Environment variable template
└── README.md故障排除
“FINNHUB_API_KEY是必需的”错误
确保您已设置环境变量:
- 本地:添加到
.env文件 - Vercel:通过仪表板或CLI添加
构建错误
rm -rf dist node_modules
npm install
npm run buildVercel部署问题
- 检查Vercel仪表板中的构建日志
- 确保设置了环境变量
- 验证
vercel.json配置 - 检查一下
dist/index.js构建后存在
许可证
麻省理工学院
支持
有关Finnhub API问题,请访问 Finnhub文档
有关MCP协议的问题,请访问 MCP文件
