金融数据API服务器

Finnhub MCP服务器提供对Finnhub金融数据API的访问,使LLM能够检索实时股票报价、公司简介、新闻、财务指标等。

  • by frankxiao008
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 frankxiao008/finnhub-mcp-server

使用说明

Finnhub MCP服务器

模型上下文协议(MCP)服务器,提供对Finnhub财务数据API的访问,使LLM能够检索实时股票报价、公司简介、新闻、财务指标等。

特性

可用工具

  1. finnhub_get-quote -获取实时股票报价,包括价格、变化和每日统计数据
  2. finnhub_get_公司简介 -获取全面的公司信息,包括行业、市值和详细信息
  3. finnhub _公司新闻 -获取特定公司的最新新闻文章
  4. finnhub_get_market_news -按类别获取一般市场新闻(一般、外汇、加密、合并)
  5. finnhub _蜡烛 -获取历史烛台(OHLCV)价格数据
  6. finnhub_get_基础金融 -获取财务指标和比率(利润率、增长、估值)
  7. finnhub _收益_惊喜 -获取历史收益与估计值
  8. finnhub_get_推荐_trends -获取分析师买入/持有/卖出建议
  9. finnhub_get_公司_同行 -获取竞争对手公司列表
  10. finnhub_get_inder_交易 -获取内幕交易活动
  11. finnhub _符号_查找 -按公司名称搜索股票代码

先决条件

安装

1.克隆或下载此存储库

git clone <your-repo-url>
cd finnhub-mcp-server

2.安装依赖项

npm install

3.设置环境变量

创建一个 .env 项目根目录中的文件:

cp .env.example .env

编辑 .env 并添加您的Finnhub API密钥:

FINNHUB_API_KEY=your_actual_api_key_here
TRANSPORT=stdio

4.建设项目

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

按照提示操作:

  1. 确认项目设置
  2. 设置项目(选择默认设置)
  3. 部署

步骤4:在Vercel上设置环境变量

部署后,您需要添加Finnhub API密钥:

通过Vercel仪表板:

  1. 转到您的项目 vercel.com
  2. 导航到“设置”→ 环境变量
  3. 添加一个新变量:
    • 姓名: FINNHUB_API_KEY
    • 价值:您的Finnhub API密钥
    • 环境:生产(必要时预览)
  4. 点击“保存”

通过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 <your-github-repo-url>
git push -u origin main

2.导入Vercel

  1. 首选 vercel.com/new
  2. 点击“导入Git仓库”
  3. 选择您的GitHub存储库
  4. 配置项目:
    • 框架预设:其他
    • 构建命令: npm run build
    • 输出目录:保留默认值
  5. 添加环境变量:
    • 姓名: FINNHUB_API_KEY
    • 价值:您的API密钥
  6. 点击“部署”

与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 build

Vercel部署问题

  1. 检查Vercel仪表板中的构建日志
  2. 确保设置了环境变量
  3. 验证 vercel.json 配置
  4. 检查一下 dist/index.js 构建后存在

许可证

麻省理工学院

支持

有关Finnhub API问题,请访问 Finnhub文档

有关MCP协议的问题,请访问 MCP文件