MCP Hub
Back to servers

MCP Demo

A FastMCP-based server providing tools for weather queries, random number generation, and real-time stock market data retrieval. It enables AI models to interact with external data and perform specific tasks through the Model Context Protocol.

Updated
Feb 26, 2026

MCP Demo 项目

项目介绍

MCP (Model Context Protocol) Demo 是一个基于 FastMCP 框架的示例项目,展示了如何构建一个提供天气查询、随机倍数生成和股票行情获取功能的服务。该项目使用通义千问作为客户端,通过 FastMCP 服务器提供的工具接口实现各种功能。

项目结构

MCP Demo/
├── README.md          # 项目说明文件
├── config.py          # 配置文件
├── requirements.txt   # 项目依赖
├── server.py          # FastMCP 服务器实现
└── tongyi_client.py   # 通义千问客户端

功能说明

服务器功能

服务器提供以下三个工具:

  1. get_current_weather:获取指定城市的当前天气信息
  2. get_num_rand:生成给定数字的随机倍数
  3. get_stock_quote:获取指定股票的买卖盘数据

客户端功能

客户端使用通义千问 API,通过 MCP 协议调用服务器提供的工具,实现与用户的交互。

安装步骤

  1. 克隆项目到本地

  2. 安装项目依赖:

pip install -r requirements.txt
  1. 配置 API 密钥:

编辑 config.py 文件,将 api_key 替换为实际的阿里云百炼 API 密钥。

使用方法

启动服务器

python server.py

服务器将在 http://0.0.0.0:8000 上运行。

运行客户端

python tongyi_client.py

客户端启动后,您可以输入以下类型的问题:

  • "北京的天气怎么样?"
  • "生成 5 的随机倍数"
  • "获取股票 600000 的行情"

服务器部署

部署步骤

  1. 上传项目文件到服务器
  2. 配置服务器环境,确保安装了 Python 和必要的依赖
  3. 配置域名,外网映射,SSL等
  4. 启动命令:
uvicorn server:sse_app --host 0.0.0.0 --port 8000

服务器截图

Server Status

技术栈

  • 服务器端:Python, FastMCP, Uvicorn
  • 客户端:Python, Qwen Agent
  • 依赖库
    • akshare (1.18.14):用于获取股票数据
    • fastmcp:MCP 框架
    • pydantic:数据验证
    • pandas:数据处理
    • uvicorn:ASGI 服务器

测试工具

您可以通过运行客户端来测试各个工具:

  1. 确保服务器已经启动
  2. 运行客户端:python tongyi_client.py
  3. 输入测试问题,例如:
    • "上海的天气怎么样?"
    • "生成 7 的随机倍数"
    • "获取股票 600036 的行情"

注意事项

  1. 确保已正确配置 API 密钥
  2. 服务器需要保持运行状态,客户端才能正常调用工具
  3. 股票行情查询需要使用正确的股票代码
  4. 天气查询功能依赖外部 API,可能会受到网络影响

示例对话

user question: 上海的天气怎么样?
工具调用信息: {'name': 'get_current_weather', 'arguments': '{"city": "上海"}'}
工具调用结果: {"data": {"city": "上海", "date": "2026-02-26", "weather": "晴", "temp": "18℃", "humidity": "65%", "wind": "东北风 3级"}, "code": 0, "msg": "success"}
上海今天的天气是晴,温度18℃,湿度65%,东北风3级。

user question: 生成 7 的随机倍数
工具调用信息: {'name': 'get_num_rand', 'arguments': '{"num": 7}'}
工具调用结果: 49
7的随机倍数是49。

user question: 获取股票 600036 的行情
工具调用信息: {'name': 'get_stock_quote', 'arguments': '{"symbol": "600036"}'}
工具调用结果: [{"卖5价": 15.25, "卖5量": 1234, "卖4价": 15.24, "卖4量": 2345, "卖3价": 15.23, "卖3量": 3456, "卖2价": 15.22, "卖2量": 4567, "卖1价": 15.21, "卖1量": 5678, "买1价": 15.20, "买1量": 6789, "买2价": 15.19, "买2量": 7890, "买3价": 15.18, "买3量": 8901, "买4价": 15.17, "买4量": 9012, "买5价": 15.16, "买5量": 1013}]
股票600036的行情数据已获取,包括买卖盘价格和数量信息。

Reviews

No reviews yet

Sign in to write a review