关于 MCP Yahoo Finance Server and UI
MCP Yahoo Finance Server and UI 通过 MCP 服务提供股票价格、公司详情和历史价格数据,并附带 FastAPI 与 DaisyUI 网页界面。该项目面向通过 MCP 或内置界面查询 Yahoo Finance 数据的用户。
主要功能
- 01查询当前股票价格
- 02获取公司信息
- 03按日期范围查询历史价格
- 04FastAPI 与 DaisyUI 网页界面
- 05使用 Azure OpenAI 处理自然语言查询
适用场景
- 01查询股票当前价格
- 02查看公司行业与市场信息
- 03获取指定日期范围的价格
- 04通过网页界面查询金融数据
MCP 相关
MCP 服务向 MCP 客户端提供 Yahoo Finance 股票价格、公司信息和历史价格。项目还包含网页界面,并使用 Azure OpenAI 处理自然语言查询。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Yahoo Finance 服务和 UI
MCP Yahoo Finance 服务是一款工具,可使用 Yahoo Finance API 获取实时股票数据、公司信息和历史价格数据。它与多客户端协议(MCP)框架集成,可在客户端与服务之间实现无缝通信。 该项目还包含一个基于 Web 的 UI,使用 FastAPI 和 DaisyUI 组件构建,使用户能够通过直观的界面与服务交互。
继续操作前,请确保已克隆此代码仓库:
git clone https://github.com/quartermaine/mcp-server-yahoo-finance.git
cd <repository-directory>
目录
功能
- 获取任意指定股票代码的当前股价。
- 检索详细的公司信息(例如,所属行业、细分行业、市值)。
- 获取指定日期范围内的历史股价数据。
- 基于 MCP 框架构建,可轻松与客户端集成。
- 由 Azure OpenAI 提供支持,可处理自然语言查询。
- 包含一个基于 Web 的 UI,使用 FastAPI 和 DaisyUI 组件构建,提供友好的使用体验。
安装
前提条件
开始之前,请确保已安装以下工具:
- pipx:用于在隔离环境中安装 Python 应用程序的工具。
- uv:快速的 Python 包和环境管理器。
安装步骤
1. 安装 pipx
更新软件包列表并安装 pipx:
sudo apt update
sudo apt install pipx
pipx ensurepath
2. 安装 uv
使用官方安装脚本安装 uv:
wget -qO- https://astral.sh/uv/install.sh | sh
运行上述命令后,请运行以下命令加载环境变量:
source $HOME/.local/bin/env
3. 创建项目和环境
创建新的项目目录:
mkdir mcp-client
cd mcp-client
使用 uv 创建虚拟环境:
uv venv
激活虚拟环境:
source .venv/bin/activate
安装所需依赖项:
uv add fastapi jinja2 uvicorn mcp anthropic python-dotenv openai yfinance
Docker 设置
要使用 Docker 构建并运行应用程序,请按以下步骤操作:
- 构建 Docker 镜像:
使用 docker build 命令创建 Docker 镜像。将 <tag_name> 替换为你选择的名称(例如,mcp-finance):
docker build -t <tag_name> .
示例:
docker build -t mcp-finance .
- 运行 Docker 容器:
使用 docker run 命令启动容器。将主机上的 8000 端口映射到容器中的 8000 端口:
docker run -p 8000:8000 <tag_name>
示例:
docker run -p 8000:8000 mcp-finance
- 访问 UI:
运行容器后,前往终端日志中显示的 URL(例如,http://0.0.0.0:8000),即可访问基于 Web 的
使用方法
运行服务
要运行 Yahoo Finance MCP 服务,请在一个终端中激活环境后执行以下命令:
uv run yahoo_finance.py
运行 UI
在另一个已激活环境的终端中,使用 Uvicorn 启动 FastAPI 应用(UI):
uvicorn main:app --reload
运行此命令后,Uvicorn 会输出一条日志消息,其中包含应用运行的 URL,通常为:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
在浏览器中打开提供的链接(http://127.0.0.1:8000),即可访问使用 DaisyUI 组件构建的 UI。
环境配置
本项目使用 Azure OpenAI 作为语言模型(LLM)提供方。请按照以下步骤配置必要的参数:
-
创建
.env文件: 复制.env.example文件以创建.env文件:cp .env.example .env -
设置 Azure OpenAI 参数: 打开
.env文件并设置以下环境变量:AZURE_OPEN_AI_API_VERSION=<your_api_version> AZURE_OPEN_AI_ENDPOINT=<your_endpoint> AZURE_OPEN_AI_API_KEY=<your_api_key> AZURE_OPEN_AI_DEPLOYMENT_MODEL=<your_deployment_model>将
<your_api_version>、<your_endpoint>、<your_api_key>和<your_deployment_model>替换为你实际的 Azure OpenAI 凭据。 -
检查
.env文件: 确保.env文件格式正确,并包含所有必需参数。示例:AZURE_OPEN_AI_API_VERSION=2023-05-15 AZURE_OPEN_AI_ENDPOINT=https://<your-resource-name>.openai.azure.com/ AZURE_OPEN_AI_API_KEY=12345abcdef67890ghijklmnopqrstuvwxyz AZURE_OPEN_AI_DEPLOYMENT_MODEL=gpt-4 -
加载环境变量: 运行服务或客户端时,
python-dotenv库会自动加载.env文件。确保.env文件位于项目根目录中。
与 Github Copilot 集成
要将 MCP Yahoo Finance Server 与 Visual Studio Code 中的 GitHub Copilot 集成,请按照以下步骤操作:
- 创建 start-mcp.sh 脚本
创建一个名为 start-mcp.sh 的 shell 脚本,用于激活虚拟环境并启动服务。将以下内容添加到文件中:
#!/bin/bash
# Navigate to the project directory
cd /<path_to>/mcp-server-yahoo-finance || { echo "Directory not found"; exit 1; }
# Activate the virtual environment
source .venv/bin/activate || { echo "Failed to activate virtual environment"; exit 1; }
# Run the server
uv run yahoo_finance.py || { echo "Failed to start server"; exit 1; }
将脚本设为可执行:
chmod +x /<path_to>/start_mcp.sh
- 配置 .vscode/mcp.json
在项目目录根目录中创建一个 .vscode/mcp.json 文件,内容如下:
{
"servers": {
"my-mcp-server": {
"type": "stdio",
"command": "/<path_to>/start-mcp.sh",
"args": []
}
}
}
此配置会指示 VS Code 使用 start-mcp.sh 脚本启动 MCP 服务。
- 将 MCP 服务添加到 GitHub Copilot
要将服务添加到 Copilot,并使用 MCP 服务中的工具:
- 在 Visual Studio Code 中打开 Copilot。
- 在 Chat 视图中切换到 Agent 模式。
- 选择 Tools 按钮以查看工具。
有关详情,请参阅官方网站
示例
1. 获取当前股价
查询:
Query: Get current price of AAPL
响应:
The current price of AAPL is $202.52
2. 获取公司信息
查询:
Query: Get company information for AAPL
响应:
Company Name: Apple Inc.
Sector: Technology
Industry: Consumer Electronics
Country: United States
Market Cap: $2,700,000,000,000
Employees: 164,000
Website: https://www.apple.com
3. 获取历史数据
查询:
Query: Get historical data for AAPL from 2023-01-01 to 2023-01-31
响应:
Date: 2023-01-03
Open: $130.00
High: $132.00
Low: $129.50
Close: $131.75
Volume: 1,234,567
---
Date: 2023-01-04
Open: $131.75
High: $133.00
Low: $130.50
Close: $132.50
Volume: 1,123,456
待办事项
-
增强错误处理:
- 针对无效输入或 API 调用失败,提供更具描述性的错误消息。
-
支持更多 API:
- 集成其他金融 API(例如 Alpha Vantage、Finnhub),以覆盖更广泛的数据。
-
优化性能:
- 缓存经常请求的数据,以减少 API 调用并缩短响应时间。
-
文档:
- 为希望扩展功能的开发者添加详细的 API 文档。
许可证
本项目采用 MIT License 授权。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。