股票市场 MCP 服务器
这是一个基于机器对话协议(MCP)的服务器,通过 Finnhub API 提供股票市场数据和分析工具。
功能特性
- 股票代码查询
- 实时股票价格
- 基础财务指标
- 市场和公司新闻
- 历史价格数据(K线图)
- 预置常见分析任务的提示词
环境要求
- Python 3.8 或更高版本
- uv - 快速的 Python 包安装器和解析器
- Finnhub API 密钥(可在 finnhub.io 免费获取)
- Claude Desktop(用于与 Claude 配合使用 MCP 服务器)
安装指南
1. 克隆仓库
2. 使用 uv 设置环境
uv 是一个快速、可靠的 Python 包安装器和虚拟环境管理器。以下是设置环境的步骤:
3. 配置环境变量
在项目根目录下创建一个
.env.local
文件,并填入你的 Finnhub API 密钥:将
your_api_key_here
替换为你的实际 Finnhub API 密钥。运行 MCP 服务器
启动 MCP 服务器:
服务器默认以 stdio 模式运行,即从标准输入读取数据并写入标准输出。
与 Claude Desktop 配合使用
要将此 MCP 服务器与 Claude Desktop 配合使用:
- 启动 Claude Desktop
- 进入 Settings > Developer
- 启用 "Developer Mode"
- 点击 "Add Tool"
- 选择 "Local MCP Server"
- 配置工具:
- 名称:Stock Market
- 命令:Python 可执行文件的完整路径和脚本
- 示例:
/Users/username/.venv/bin/python /Users/username/stock-market-mcp-server/stock-market-server.py
- 工作目录:项目目录的完整路径
- 点击 "Save"
现在,你可以在与 Claude 的对话中使用股票市场工具了!
或者,你也可以手动将工具添加到 Claude Desktop 的工具列表中。
你可以在 Claude Desktop 的安装目录中找到配置文件。在 MacBook Pro 上,
它位于
~/Library/Application\ Support/Claude/claude_desktop_config.json
。
将以下 JSON 添加到 tools
数组中,注意根据你的环境修改路径:与股票市场客户端配合使用
要将 MCP 服务器与股票市场客户端配合使用,请按照以下步骤操作:
- 你需要一个 Anthropic API 密钥。可以在 Anthropic 免费获取。
- 在 .env 文件中更新你的 API 密钥。
ANTHROPIC_API_KEY=your_api_key_here
- 使用以下命令启动 MCP 客户端:
uv run stock_market_client.py
可用工具
MCP 服务器提供以下工具:
get_stock_symbol_lookup
:通过公司名称搜索股票代码
get_stock_price
:获取股票的最新价格
get_basic_financials
:获取公司的关键财务指标
get_market_news
:按类别获取最新的市场新闻
get_company_news
:获取特定公司在某日期范围内的新闻
get_stock_candles
:获取股票的历史价格数据
可用提示词
服务器包含以下预置提示词:
stock_analysis
:分析股票的投资潜力
market_overview
:获取全面的市场概览
stock_price_history
:分析历史价格走势
company_news_analysis
:分析新闻及其对股价的影响
示例使用提示词
以下是一些与 Claude 配合使用工具的示例:
- 查询股票代码: "你能帮我查一下苹果公司的股票代码吗?"
- 获取当前股票价格: "AAPL 的当前价格是多少?"
- 使用提示词: "我想分析一下特斯拉股票的投资潜力。"
- 组合多个工具: "给我一个市场概览,包括最新新闻和 AAPL、MSFT、TSLA 的当前价格。"
故障排除
- API 密钥问题:确保你的 Finnhub API 密钥已正确设置在
.env.local
文件中
- 模块未找到错误:确保你已激活虚拟环境并安装了所有依赖项
- 连接问题:检查你的互联网连接和 Finnhub API 状态
许可证
MIT License
- Author:waytomcp
- URL:https://www.waytomcp.com/article/sverze/stock-market-mcp-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!