大数跨境

在边缘设备上实现 MCP

在边缘设备上实现 MCP 索引目录
2025-08-21
3
导读:关注【索引目录】服务号,更多精彩内容等你来探索!模型上下文协议 (MCP) 正在将 LLM 从孤立的推理引擎转变为与边缘设备、本地环境和传感器交互的真实世界代理。

关注【索引目录】服务号,更多精彩内容等你来探索!

模型上下文协议 (MCP) 正在将 LLM 从孤立的推理引擎转变为与边缘设备、本地环境和传感器交互的真实世界代理。本文提供了在 Raspberry Pi 或微控制器等硬件上部署 MCP 服务器的实用分步指南。您将学习如何将本地传感器公开为结构化工具,使 LLM 能够读取环境数据、控制设备并执行有意义的操作,所有这些都无需依赖云1

了解架构



模型上下文协议 (MCP) 的核心遵循双向客户端-服务器架构,其中AI 客户端(通常是 LLM 代理)与本地或远程托管的MCP 服务器交互,以执行真实世界的操作或检索上下文。所使用的通信协议是JSON-RPC 2.0,因其简单、低开销和面向方法的语义而被选中——非常适合基于工具的调用2

MCP 服务器作为边缘协调器



在Raspberry Pi 5ESP32或类似的微控制器平台等边缘设备上,MCP 服务器充当设备I/O 接口的运行时抽象层。该服务器:

  • 将工具
    (例如read_temperature,,,toggle_relayget_motion_status作为结构化模式中的可调用方法公开。
  • 处理
    HTTP、stdio 或 SSE 等传输协议,允许客户端通过有线、无线或串行连接进行交互。
  • 通过 Zod 或 JSON Schema实现类型安全接口
    来验证输入/输出,确保与物理世界进行确定性的交互3

工具注册和执行

每项公开的功能(无论是 GPIO 引脚读取、I2C 传感器获取,还是执行器命令)都被建模为一个工具。这些工具注册了以下元数据:



  • name
    :方法标识符(例如"getHumidity"
  • params
    :结构化输入模式
  • result
    :类型化输出模式
  • description
    :法学硕士的自然语言解释

当 AI 代理发出请求时,MCP 服务器会调用相应的处理程序,执行设备级代码(例如,用于onoffGPIO 或smbusI2C),并返回经过验证的结果4

分步部署指南

先决条件

  • Raspberry Pi 5(或类似的基于 ARM 的 Linux 设备)
  • 熟悉 Python 并对提示驱动的 AI 代理有基本的了解

1. Install uv– 一个基于 Rust 的快速 Python 包管理器

访问你的 Pi 终端并运行:

curl -LsSf https://astral.sh/uv/install.sh | sh

然后重新启动终端,以便uv在 PATH 中可用。
uv简化 Python 项目设置,提供虚拟环境、锁文件和边缘平台5上的快速依赖管理。

2. 初始化您的 MCP 项目

mkdir mcp-edge
cd mcp-edge
uv init
uv pip install fastmcp==2.2.10
uv add requests

这构建了一个可重复的项目并安装了FastMCP一个轻量级的 Python MCP 服务器以及requests用于 API 集成6

3. 编写 MCP 服务器脚本

创建文件server.py

import subprocess, re
import requests
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Edge MCP Server")

@mcp.tool()
def read_temp():
    out = subprocess.check_output(["vcgencmd", "measure_temp"]).decode()
    temp_c = float(re.search(r"[-\\d.]+", out).group())
    return temp_c

@mcp.tool()
def get_current_weather(city: str) -> str:
    return requests.get(f"https://wttr.in/{city}").text

if __name__ == "__main__":
    mcp.run(transport="sse")
  • read_temp()
    报告 Raspberry Pi 的 CPU 温度。
  • get_current_weather(city)
    获取实时天气信息。
  • 该服务器使用 SSE 通过 HTTP 按照定义的模式公开工具,符合 MCP 标准6

4. 运行 MCP 服务器

启动方式:

uv run server.py

MCP 服务器现在通过 SSE 传输在 8000 端口上开放其功能。LLM 客户端(例如 Claude Desktop 或任何 MCP 客户端)可以直接连接并调用这些工具。

5. (可选)使用以下方式公开服务器ngrok

对于远程访问:

ngrok http 8000

这会生成一个安全的、可通过 HTTPS 访问的端点;非常适合连接远程 LLM 客户端,甚至可以跨越 NAT 或防火墙。

增强设置:附加工具和生态系统资源

  • 开发者工具:MCP Inspector
    支持实时验证和调试 MCP 服务器的实现。
    它提供交互式测试和实时检查,确保在生产部署前实现合规性5
  • 扩展服务器集合:
    社区精选的 MCP 服务器包提供生产级功能,例如 PostgreSQL +pgvector支持(用于 LLM 内存)、系统监控等,所有这些都针对 Raspberry Pi 7等 ARM 平台进行了优化。

安全注意事项

在边缘部署 MCP 服务器会带来潜在风险。研究发现,受感染的 MCP 服务器存在工具中毒、傀儡攻击和恶意资源利用等漏洞7。为了缓解这些威胁,请执行以下操作:

  • 企业安全框架
    建议在生产环境中部署 MCP 系统时使用威胁建模、正式审计和访问控制保障措施8
  • MCP Guardian
    是一种安全第一的架构,提供身份验证、速率限制、日志记录、跟踪和防火墙扫描功能,以保护基于 MCP 的工作流9

应用这些措施至关重要,尤其是在向外部客户端或公共网络公开工具时。

边缘人工智能的优势

该架构将AI推理硬件交互分离,同时实现低延迟控制回路。通过将MCP服务器直接嵌入到边缘硬件上,可以实现以下功能:

  • 推理是本地化的
    ——LLM 可以发出特定于上下文的命令,而无需云往返。
  • 数据保持私密
    - 传感器流在设备内处理,从而降低了暴露风险。
  • 恢复更容易
    - 如果工具出现故障(例如,传感器断开连接),服务器可以返回结构化的错误状态。

此外,该方法支持流式传输结果(例如,用于遥测或监控)和持久连接,从而为需要时间感知或反馈控制10的 LLM 提供连续数据流。

想法

在 Raspberry Pi 等边缘设备上运行 MCP 服务器具有显著优势,包括本地访问、降低延迟以及摆脱中心化基础设施的独立性。uv两者的结合FastMCP使设置更加高效且可重复。随着开发者寻求扩展 LLM 驱动的与现实世界的交互,采用强大的安全模型(例如 MCP Guardian 和企业框架提供的模型)对于安全可靠的部署至关重要。

关注【索引目录】服务号,更多精彩内容等你来探索!


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读12
粉丝0
内容444