项目简介
该GitHub仓库是一个MCP服务器示例的集合,主要基于'FastMCP'框架构建。它展示了如何将各种外部服务(如GitHub API、Up Bank API、Sysdig API、SWAPI以及YFinance股票数据)封装成LLM可以调用的“工具”。每个示例都是一个独立的MCP服务器实现,通过JSON-RPC协议提供服务,允许LLM客户端获取上下文信息并执行特定功能。
主要功能点
- 封装外部服务为LLM工具: 将常见的第三方API(如GitHub操作、股票查询、金融账户信息、系统监控查询)转换为LLM可以理解和调用的工具函数。
- 多种传输协议支持: 示例展示了通过标准输入/输出(Stdio)和服务器发送事件(SSE/HTTP)两种方式启动MCP服务器,以适应不同的客户端连接需求。
- 模块化设计: 每个示例都独立成文件,方便开发者理解、修改和复用,快速构建自己的MCP服务器。
安装步骤
- 克隆仓库:
git clone https://github.com/codecowboydotio/mcp-server-examples.git cd mcp-server-examples - 安装依赖:
由于每个示例可能依赖不同的库,建议根据具体示例安装。核心MCP服务器依赖通过'pip install fastmcp'安装。
对于提供的示例,可能需要以下库:
pip install fastmcp httpx requests uvicorn yfinance - 配置API令牌: 大多数示例需要外部服务的API令牌(如GitHub Token, Up Bank Token, Sysdig Token)。请在相应的Python文件中找到'XXX'或'XXXX'占位符,替换为你的实际令牌。
服务器配置
MCP客户端需要配置MCP服务器的启动信息。以下是几个示例的配置参考:
1. GitHub部署工具服务器 ('github.py') 这是一个通过Stdio协议运行的MCP服务器,提供GitHub部署工具。
{ "name": "GitHubDeploymentServer", "command": "python", "args": ["github.py"], "description": "提供GitHub Actions部署功能的MCP服务器", "transport": "stdio" }
2. Up Bank账户查询服务器 ('up_accounts.py') 这是一个通过Stdio协议运行的MCP服务器,提供Up Bank账户查询功能。
{ "name": "UpBankAccountServer", "command": "python", "args": ["up_accounts.py"], "description": "提供Up Bank账户信息查询功能的MCP服务器", "transport": "stdio" }
3. Sysdig监控查询服务器 ('sysdig.py') 这是一个通过Stdio协议运行的MCP服务器,提供Sysdig监控数据查询功能。
{ "name": "SysdigMonitoringServer", "command": "python", "args": ["sysdig.py"], "description": "提供Sysdig监控数据查询功能的MCP服务器", "transport": "stdio" }
4. SWAPI角色查询服务器 ('swapi.py') 这是一个通过Stdio协议运行的MCP服务器,提供星球大战角色信息查询功能。
{ "name": "SWAPICharacterServer", "command": "python", "args": ["swapi.py"], "description": "提供SWAPI(星球大战API)角色信息查询功能的MCP服务器", "transport": "stdio" }
5. 股票信息查询服务器 ('remote/yfinance-example/server.py') 这是一个通过HTTP (SSE) 协议运行的MCP服务器,提供股票价格和历史拆分信息。
{ "name": "StocksServer", "command": "python", "args": ["remote/yfinance-example/server.py"], "description": "提供股票实时价格和历史拆分信息查询功能的MCP服务器", "transport": "sse", "port": 8000, "host": "0.0.0.0" }
请注意:'port'和'host'字段仅适用于HTTP/SSE等网络传输协议。
基本使用方法
启动MCP服务器后,LLM客户端(例如使用'mcp-client'库构建的客户端)可以通过上述配置信息连接到服务器。连接成功后,客户端即可发现并调用服务器暴露的工具(如'github_deploy', 'up_accounts', 'sysdig', 'get_swapi_character', 'get_current_stock_price', 'get_historical_stock_splits'),从而在LLM应用中集成外部服务能力。
例如,对于'StocksServer':
- 启动服务器:
服务器将在'http://0.0.0.0:8000'上监听。python remote/yfinance-example/server.py - LLM客户端调用: LLM客户端可以请求执行'get_current_stock_price'工具,传入'ticker'参数(如"AAPL"),服务器将返回AAPL的当前开盘价。
信息
分类
AI与计算