使用说明
项目简介
该项目 'mcp-scripts' 提供了一系列使用 Python FastMCP 框架构建的示例 MCP 服务器。这些服务器演示了如何定义和注册工具 (Tools) 和资源 (Resources),以便 LLM 客户端可以调用这些功能或访问数据。示例涵盖了计算器、邮件发送、天气查询、尼泊尔股市信息获取以及简单的资源服务。
主要功能点
- 工具 (Tools) 示例:
- 计算器: 提供加法计算功能 ('add', 'arjun-add')。
- 邮件发送: 通过 SMTP 服务器发送邮件 ('send_email')。
- 天气查询: 获取指定城市的天气信息 ('weather_by_city_name')。
- 尼泊尔股市 (NEPSE) 信息: 获取 NEPSE 指数、涨幅榜、跌幅榜、成交额榜、成交量榜、交易量榜等数据 ('fetch_nepse_point', 'fetch_top_gainers' 等)。
- 资源 (Resources) 示例:
- 应用配置资源: 提供一个简单的应用配置信息资源 ('config://application')。
- FastMCP 框架: 使用 'mcp.server.fastmcp.FastMCP' 简化 MCP 服务器的开发。
- 多种传输模式支持: 示例默认使用 'stdio' 传输模式,同时也提及支持 'sse' 模式。
- 依赖管理: 演示了如何在 MCP 服务器中声明和管理 Python 依赖 (例如 'httpx', 'python-dotenv')。
- 环境变量配置: 邮件发送和天气查询示例使用了 '.env' 文件和环境变量来管理敏感信息(如 API 密钥、SMTP 服务器配置)。
安装步骤
- 安装 Python 环境: 确保你的系统已安装 Python 3.7 或更高版本。
- 安装 FastMCP 库: 虽然仓库中没有直接提供 'mcp.server.fastmcp' 库的安装方式,但根据代码推测,可能需要先安装 FastMCP 框架。如果 'pip install mcp-server' 或 'pip install fastmcp' 不可用,可能需要查找 FastMCP 框架的安装方式或自行构建。(注意:此仓库本身不包含 'mcp-server' 库,可能需要从其他来源获取,例如作者的其他仓库或 PyPI。)
- 安装示例服务器依赖: 进入每个示例服务器的目录(例如 'src/001-calculator'),根据 'server.py' 文件中的 'dependencies' 列表安装所需的 Python 包。例如,对于天气查询服务器,需要安装 'httpx' 和 'python-dotenv':
邮件发送服务器同样需要安装 'httpx' 和 'python-dotenv'。尼泊尔股市信息服务器需要安装 'httpx'。cd src/002-weather pip install httpx python-dotenv
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令才能连接并使用这些示例服务器。以下是一些示例服务器的配置信息(JSON 格式):
1. 计算器服务器 (server-name: calculator):
{ "server-name": "calculator", "command": "python", "args": ["src/001-calculator/server.py"] }
注释:
- 'server-name': 服务器名称,客户端可以使用此名称来标识和调用该服务器。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 传递给 'command' 的参数,这里指定了计算器服务器脚本的路径。
2. 邮件发送服务器 (server-name: email-sender):
{ "server-name": "email-sender", "command": "python", "args": ["src/006-send-email/server.py"], "env": { "SMTP_SERVER": "your_smtp_server", // 请替换为你的 SMTP 服务器地址 "SMTP_PORT": "your_smtp_port", // 请替换为你的 SMTP 服务器端口 "SENDER_EMAIL": "[email protected]", // 请替换为你的发件人邮箱 "SENDER_PASSWORD": "your_email_password" // 请替换为你的发件人邮箱密码 } }
注释:
- 'env': 环境变量配置,用于传递敏感信息,例如 SMTP 服务器的配置和邮箱密码。请务必替换示例值为你自己的 SMTP 服务器配置和邮箱信息。 你还需要在 'src/006-send-email' 目录下创建 '.env' 文件,并将这些环境变量写入 '.env' 文件中。
3. 天气查询服务器 (server-name: weather-app):
{ "server-name": "weather-app", "command": "python", "args": ["src/002-weather/server.py"], "env": { "OPENWEATHER_API_KEY": "your_openweathermap_api_key" // 请替换为你的 OpenWeatherMap API 密钥 } }
注释:
- 'env': 环境变量配置,用于传递 OpenWeatherMap API 密钥。请务必替换示例值为你自己的 API 密钥。 你需要在 OpenWeatherMap 官网注册并获取 API 密钥,并在 'src/002-weather' 目录下创建 '.env' 文件,将 'OPENWEATHER_API_KEY' 写入 '.env' 文件中。
4. 尼泊尔股市信息服务器 (server-name: nepse-api):
{ "server-name": "nepse-api", "command": "python", "args": ["src/010-nepse/server.py"] }
5. 资源演示服务器 (server-name: resource-demo):
{ "server-name": "resource-demo", "command": "python", "args": ["src/003-mcp-resource/server.py"] }
基本使用方法
-
启动服务器: 在每个示例服务器的目录下,运行相应的启动命令,例如:
cd src/001-calculator python server.py这将以 'stdio' 传输模式启动计算器 MCP 服务器。其他服务器也类似,只需切换到对应的目录并运行 'python server.py'。
-
配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端(如 Cursor, VS Code 等)中,根据客户端的配置方式(通常是 JSON 配置文件或设置界面),添加上述服务器配置信息。确保 'server-name', 'command', 'args' 配置正确,并根据需要配置 'env' 环境变量。
-
在 LLM 中使用: 配置完成后,LLM 客户端应该能够发现并调用这些 MCP 服务器提供的工具和资源。具体的调用方式取决于 LLM 客户端的实现。例如,在支持工具调用的 LLM 应用中,你可以指示 LLM 使用 "calculator" 服务器的 "add" 工具来执行加法运算,或使用 "weather-app" 服务器的 "weather_by_city_name" 工具查询天气。对于资源,客户端可以使用 'config://application' 这样的 URI 来访问资源演示服务器提供的配置信息。
注意: 这些示例服务器默认使用 'stdio' 传输模式。如果客户端需要使用 'sse' 或其他传输模式,可能需要在 'server.py' 文件的 'mcp.run()' 方法中指定 'transport' 参数,并确保客户端也配置为使用相同的传输模式。
信息
分类
开发者工具