使用说明

项目简介

该项目 '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 服务器配置)。

安装步骤

  1. 安装 Python 环境: 确保你的系统已安装 Python 3.7 或更高版本。
  2. 安装 FastMCP 库: 虽然仓库中没有直接提供 'mcp.server.fastmcp' 库的安装方式,但根据代码推测,可能需要先安装 FastMCP 框架。如果 'pip install mcp-server' 或 'pip install fastmcp' 不可用,可能需要查找 FastMCP 框架的安装方式或自行构建。(注意:此仓库本身不包含 'mcp-server' 库,可能需要从其他来源获取,例如作者的其他仓库或 PyPI。)
  3. 安装示例服务器依赖: 进入每个示例服务器的目录(例如 'src/001-calculator'),根据 'server.py' 文件中的 'dependencies' 列表安装所需的 Python 包。例如,对于天气查询服务器,需要安装 'httpx' 和 'python-dotenv':
    cd src/002-weather
    pip install httpx python-dotenv
    邮件发送服务器同样需要安装 'httpx' 和 'python-dotenv'。尼泊尔股市信息服务器需要安装 'httpx'。

服务器配置

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"]
}

基本使用方法

  1. 启动服务器: 在每个示例服务器的目录下,运行相应的启动命令,例如:

    cd src/001-calculator
    python server.py

    这将以 'stdio' 传输模式启动计算器 MCP 服务器。其他服务器也类似,只需切换到对应的目录并运行 'python server.py'。

  2. 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端(如 Cursor, VS Code 等)中,根据客户端的配置方式(通常是 JSON 配置文件或设置界面),添加上述服务器配置信息。确保 'server-name', 'command', 'args' 配置正确,并根据需要配置 'env' 环境变量。

  3. 在 LLM 中使用: 配置完成后,LLM 客户端应该能够发现并调用这些 MCP 服务器提供的工具和资源。具体的调用方式取决于 LLM 客户端的实现。例如,在支持工具调用的 LLM 应用中,你可以指示 LLM 使用 "calculator" 服务器的 "add" 工具来执行加法运算,或使用 "weather-app" 服务器的 "weather_by_city_name" 工具查询天气。对于资源,客户端可以使用 'config://application' 这样的 URI 来访问资源演示服务器提供的配置信息。

注意: 这些示例服务器默认使用 'stdio' 传输模式。如果客户端需要使用 'sse' 或其他传输模式,可能需要在 'server.py' 文件的 'mcp.run()' 方法中指定 'transport' 参数,并确保客户端也配置为使用相同的传输模式。

信息

分类

开发者工具