MCP服务器实现

一个基于FastMCP框架的MCP服务器实现,提供天气报告和加法工具等功能,支持与多种MCP客户端通信。

  • by BapanBigData
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BapanBigData/helloworld-mcp-server-deployment

使用说明

hello world mcp服务器

此存储库提供 hello-world-mcp-server,使用FastMCP Python框架实现模型上下文协议(MCP)服务器。这使得构建、运行和扩展与客户端通信的MCP服务器变得容易,例如 克劳德, 克莱恩, 光标, VSCode以及更多。

特性

  • 天气预报:使用简单的API工具获取实时天气数据。
  • 添加工具:基本示例工具,说明如何扩展自己的MCP工具。
  • 可扩展和Python:基于 FastMCP,支持可组合性和最小设置。
  • 为MCP客户端做好准备:与不断增长的MCP应用生态系统兼容。

先决条件

安装 uv

  • 窗户:
    irm https://astral.sh/uv/install.ps1 | iex
    
  • Mac/Linux:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    确保 uvx 安装后在shell中运行:
uvx --help

快速入门:从MCP客户端运行

将以下JSON粘贴到MCP兼容客户端(光标, 克莱恩, 克劳德等),在输入您的OpenWeather API密钥后:

{
  "mcpServers": {
    "hello-world-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/BapanBigData/helloworld-mcp-server-deployment.git",
        "--",
        "mcp-server"
      ],
      "env": {
        "OPENWEATHER_API_KEY": "your-openweather-api-key"
      }
    }
  }
}

配置:

  • 替换 your-openweather-api-key 使用您自己的密钥(必填)。
  • 上面运行的是最新的主分支。客户端通过stdio进行通信。

原理

  • 服务器利用 FastMCP 用于通过装饰器定义工具,以实现简单的Python扩展。
  • 天气工具使用 OpenWeather API 并且需要您的密钥 OPENWEATHER_API_KEY.

技术概述

  • 框架: FastMCP
  • 语言: Python 3.12+
  • 依赖关系: 看 pyproject.toml (使用 mcp[cli], requests)
  • 入口点: CLI命令 mcp-server 执行 src/mcpserver/__main__.py 其运行FastMCP供电的服务器。
  • 配置: 所有敏感值都通过环境变量进行管理。
  • 部署: 用户通过以下方式实现零安装 uvx --from git+... 意味着您永远不需要手动克隆或pip安装--uvx 处理临时沙盒中的依赖关系。

关于FastMCP

FastMCP是一个轻量级的Python框架,用于构建模型上下文协议服务器和客户端。 主要特点:

  • 低样板:用装饰器定义工具。
  • 灵活性:轻松组合/修改服务器。
  • 集成:支持OpenAPI、FastAPI等,可快速创建工具。
  • 代理和可组合性:轻松创建代理、多路复用器和转换。

请参阅 FastMCP文档 了解高级功能和用法。

关于 uv 和 uvx

  • 紫外线: 一个用Rust编写的速度极快的Python包/项目管理器。提供健壮、可重复的环境和通用锁文件。
  • uvx: 一个命令行实用程序,允许直接从Git存储库中即时、独立地执行Python包,而无需显式安装。非常适合运行全局工具/MCP服务器。

更多信息请访问 uv 文档.

环境与安全

  • 将您的OpenWeather API密钥放在如上所示的环境中。永远不要将秘密提交给源代码管理。
  • 所有运行环境都使用沙盒 uv.

支持

对于问题或功能请求,请在上打开问题 GitHub.