使用说明
项目简介
本项目 'mcp-servers' 包含多个使用 FastMCP 框架实现的 MCP 服务器示例,旨在展示如何构建能够提供资源、工具和 Prompt 模板的 MCP 后端服务。这些示例覆盖了股票数据分析、天气信息获取、基础计算以及 LinkedIn 个人资料抓取等多种应用场景,可以作为开发自定义 MCP 服务器的参考。
主要功能点
-
资源 (Resources):
- 'stock-analysis/finance-server.py' 提供了 'config://app' 资源,返回静态配置数据。
- 'simple-calculator/calculator.py' 提供了动态资源 'greeting://{name}',根据名称返回个性化问候语。
-
工具 (Tools):
- 'stock-analysis/finance-server.py' 提供了以下股票分析工具:
- 'calculate_moving_averages': 计算股票的移动平均线。
- 'calculate_rsi': 计算股票的相对强弱指数 (RSI)。
- 'trade_recommendation': 基于移动平均线和 RSI 提供交易建议。
- 'weather/weather.py' 提供了以下天气查询工具:
- 'get_alerts': 获取美国特定州的天气警报。
- 'get_forecast': 获取指定经纬度位置的天气预报。
- 'simple-calculator/calculator.py' 提供了基础计算工具:
- 'add', 'subtract', 'multiply', 'divide', 'power', 'sqrt', 'cbrt', 'factorial', 'log', 'remainder', 'sin', 'cos', 'tan': 进行加减乘除、幂运算、开方、阶乘、对数、求余以及三角函数计算。
- 'linkedin-profile-scraper/scrape.py' 提供了 LinkedIn 个人资料抓取工具:
- 'get_profile': 根据 LinkedIn 个人资料 URL 获取个人资料数据。
- 'stock-analysis/finance-server.py' 提供了以下股票分析工具:
-
Prompt 模板 (Prompts):
- 'stock-analysis/finance-server.py' 提供了以下 Prompt 模板,用于自动化股票分析:
- 'analyze_ticker': 分析单个股票的交易机会。
- 'compare_tickers': 比较多个股票以寻找最佳交易机会。
- 'intraday_strategy_builder': 为特定股票构建自定义日内交易策略。
- 'stock-analysis/finance-server.py' 提供了以下 Prompt 模板,用于自动化股票分析:
安装步骤
- 安装 Python 环境: 确保您的系统已安装 Python 3.7 或更高版本。
- 安装 FastMCP 库: 使用 pip 安装 'fastmcp' 库。
pip install fastmcp - 安装依赖库 (可选): 部分示例可能依赖其他 Python 库,例如:
- 'stock-analysis/finance-server.py': 依赖 'requests', 'pandas', 'tabulate'。
- 'weather/weather.py': 依赖 'httpx'。
- 'linkedin-profile-scraper/scrape.py': 依赖 'httpx', 'dotenv'。 可以使用 'pip install -r requirements.txt' (如果项目提供 'requirements.txt' 文件)或者手动安装:
pip install requests pandas tabulate httpx python-dotenv - 配置 API 密钥 (如果需要):
- 'stock-analysis/finance-server.py' 使用 Alpha Vantage API,需要在环境变量中设置 'ALPHAVANTAGE_API_KEY'。
- 'linkedin-profile-scraper/scrape.py' 使用 RapidAPI 的 Fresh LinkedIn Profile Data API,需要在环境变量中设置 'RAPIDAPI_KEY'。 请访问相应的 API 平台获取 API 密钥,并将其设置为环境变量。
服务器配置
以下是一些示例 MCP 服务器的客户端配置信息,客户端需要根据这些信息连接到 MCP 服务器。
1. 股票分析服务器 (finance-server.py)
{ "serverName": "AlphaVantageTrader", "command": "python", "args": ["finance-server.py"], "cwd": "stock-analysis" }
注释:
- 'serverName': 服务器名称,客户端用以识别。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 传递给命令的参数,这里指定运行 'finance-server.py' 文件。
- 'cwd': 可选参数,指定工作目录为 'stock-analysis',确保程序能找到所需的文件和依赖。
2. 天气查询服务器 (weather.py)
{ "serverName": "weather", "command": "python", "args": ["weather.py"], "cwd": "weather" }
注释: 配置与股票分析服务器类似,但 'serverName' 和 'cwd' 更改为天气服务相关。
3. 简单计算器服务器 (calculator.py)
{ "serverName": "Hello World", "command": "python", "args": ["calculator.py"], "cwd": "simple-calculator" }
注释: 配置与前述示例类似,'serverName' 和 'cwd' 对应计算器服务。
4. LinkedIn 资料抓取服务器 (scrape.py)
{ "serverName": "linkedin-profile-scraper", "command": "python", "args": ["scrape.py"], "cwd": "linkedin-profile-scraper" }
注释: 配置与前述示例类似,'serverName' 和 'cwd' 对应 LinkedIn 资料抓取服务。
请注意:
- 以上配置假设 MCP 客户端和 MCP 服务器在同一文件系统上,并且可以通过相对路径找到服务器脚本。
- 实际部署时,您可能需要根据 MCP 客户端的具体配置方式进行调整,例如指定绝对路径或使用网络传输协议。
- 运行服务器前,请确保已安装所有依赖,并正确配置了 API 密钥等环境变量。
基本使用方法
- 启动服务器: 使用终端进入相应的示例目录(例如 'stock-analysis'),然后根据上述配置信息,通过 MCP 客户端启动对应的服务器。服务器将通过标准输入/输出 (stdio) 或其他配置的传输协议与客户端通信。
- 客户端请求: MCP 客户端可以使用 JSON-RPC 协议向服务器发送请求,调用已注册的资源、工具或 Prompt 模板。
- 调用资源: 客户端可以请求获取资源,例如 'config://app' 或 'greeting://John'。
- 调用工具: 客户端可以调用工具并传递参数,例如调用 'calculate_moving_averages' 工具并提供股票代码。
- 调用 Prompt 模板: 客户端可以调用 Prompt 模板,例如 'analyze_ticker' 并提供股票代码,以获取分析结果。
- 服务器响应: MCP 服务器接收到客户端请求后,会执行相应的操作,并将结果以 JSON-RPC 响应的形式返回给客户端。
具体的使用方式和请求格式取决于 MCP 客户端的实现和 MCP 协议规范。您可以参考 FastMCP 客户端文档或 MCP 协议规范了解更多细节。
信息
分类
网页与API