项目简介

该项目包含 MCP 服务器的实现示例,特别是位于 'my_servers' 目录下的 'timetools.py' 和 'Unsplash.py'。这两个文件实现了基于 MCP 协议的后端服务,提供特定功能的工具集,可以通过 MCP 客户端(如项目中的 'host.py' 或 'client_examples' 中的示例)与大语言模型(LLM)集成,实现模型调用外部工具的能力。

主要功能点

本项目提供的 MCP 服务器(位于 'my_servers' 目录下)主要包含以下工具功能:

  • 时间工具 (timetools.py):
    • 获取当前时间。
    • 将时间字符串转换到指定时区。
  • 图片及壁纸工具 (Unsplash.py):
    • 根据关键词、颜色、方向等过滤条件搜索并获取 Unsplash 上的图片 URL。
    • 获取随机 Unsplash 壁纸 URL。
    • 根据图片 URL 展示图片(依赖本地图片查看器)。
    • 根据图片 URL 下载图片到本地。
    • 设置本地图片文件为桌面壁纸(目前仅支持 Windows)。

这些工具通过 MCP 协议暴露给 LLM 客户端,允许 LLM 在需要时调用这些功能来完成用户请求。

安装步骤

  1. 克隆本项目仓库。
  2. 确保您已安装 Python 3.8 或更高版本。
  3. 安装项目依赖:
    pip install -r requirements.txt
    或使用 'uv':
    uv pip install -r requirements.txt
  4. 配置 API Key: 项目中的某些工具(如 Unsplash)需要外部服务的 API Key。创建 '.env' 文件在项目根目录,并根据需要添加 API Key,例如:
    UNSPLASH_API=your_unsplash_api_key
    其他的 API Key (如 Deepseek, Dashscope) 是用于客户端 ('host.py') 连接大模型的,与服务器本身无关,但若要运行完整的客户端示例,也需要配置。
  5. 安装 'pytz' 库,'timetools.py' 需要它:
    pip install pytz

服务器配置(供MCP客户端使用)

MCP 服务器是作为独立的进程运行,由 MCP 客户端启动并连接。对于使用 Stdio 传输协议的本地服务器,MCP 客户端需要配置启动服务器的命令行信息。

例如,一个 MCP 客户端(如 'host.py')需要连接 'timetools.py' 和 'Unsplash.py' 这两个服务器,其配置信息大致如下(具体格式取决于客户端实现,此处为示例 JSON 结构描述):

[
  {
    "server_name": "time_mcp_server",
    "transport": "stdio", // Stdio 传输协议
    "command": "python",
    "args": [
      "path/to/your/MCP-Explorer/my_servers/timetools.py" // 替换为实际文件路径
    ]
  },
  {
    "server_name": "wallpaper-server",
    "transport": "stdio", // Stdio 传输协议
    "command": "python",
    "args": [
      "path/to/your/MCP-Explorer/my_servers/Unsplash.py" // 替换为实际文件路径
    ]
  }
]
  • 'server_name': MCP 服务器的标识名称。
  • 'transport': 使用的传输协议,这里是 'stdio'。
  • 'command': 启动服务器进程的命令,通常是 'python'。
  • 'args': 传递给 'command' 的参数列表,第一个参数是服务器脚本的路径。

您需要将 '"path/to/your/MCP-Explorer/"' 替换为您的本地文件系统的实际路径。项目中的 'config.py' 文件即是 'host.py' 客户端配置服务器路径的示例(虽然它直接使用 Python 列表而非 JSON)。

基本使用方法

  1. 启动 MCP 服务器: 打开终端或命令行,分别运行服务器脚本。例如:

    python my_servers/timetools.py
    python my_servers/Unsplash.py

    (注意:上述命令默认以 stdio 模式启动。若要以 SSE 模式启动 'timetools.py',可以运行 'python my_servers/timetools.py --mode sse',但客户端也需要相应配置。) 服务器启动后,会在终端中打印信息。让这些终端保持开启状态。

  2. 启动 MCP 客户端: 本项目提供了一个客户端 'host.py',它会根据 'config.py' 中的配置自动启动并连接到本地服务器脚本。确保您已经在 'config.py' 中配置了正确的服务器脚本路径。

    python host.py

    或者,您可以使用 'client_examples' 中的示例客户端,根据其说明连接到已启动的服务器。例如,使用 'stdio_client.py' 连接到 'timetools.py':

    python client_examples/stdio_client.py my_servers/timetools.py
  3. 与客户端交互: 客户端启动后,您可以在客户端的命令行界面输入问题或指令。客户端会与配置的大模型交互,大模型可能会调用已连接的 MCP 服务器提供的工具来回答您的问题。 例如,询问时间、搜索图片、设置壁纸等。

关键词

时间工具, 图片搜索, 桌面壁纸, 文件操作, API调用

信息

分类

桌面与硬件