问候服务

一个基于MCP协议的问候服务,提供个性化的问候功能,支持Gradio用户界面和SmolAgents驱动的AI调用。

  • by bruriah1999
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bruriah1999/genie-mcp-server

使用说明

带有SmolAgents和Gradio UI的MCP问候服务器

概述

该项目实现了 模型上下文协议(MCP) 服务器与简单 greet 根据提供的姓名返回个性化问候的工具。服务器是使用 FastMCP 图书馆与 格拉迪奥 用于用户友好交互的web界面和 斯莫尔特工 CodeAgent 用于AI驱动的工具调用。整个应用程序是使用容器化的 码头工人 易于部署和移植。

特性

  • MCP服务器:主持人a greet 为给定名称生成问候语(例如,“你好,爱丽丝!欢迎来到MCP服务器。”)的工具。
  • Gradio用户界面:一个干净的、基于浏览器的界面,供用户输入姓名和接收问候。
  • SmolAgents集成A. CodeAgent 由 HuggingFaceTB/SmolLM2-1.7B-Instruct 模型,它以编程方式调用 greet 工具。
  • Docker化安装程序:确保跨环境的一致部署。

项目结构

  • Dockerfile:定义项目的Docker镜像,基于 python:3.11-slim,并运行MCP服务器、Gradio UI和SmolAgents代理。
  • server.py:使用以下工具实现MCP服务器 greet 工具,在端口6275上使用HTTP传输。
  • app.py:在端口7860上运行Gradio web界面,允许用户与 greet 工具通过浏览器。
  • agent.py:配置a SmolAgents CodeAgent 致电 greet 使用编程工具 SmolLM2-1.7B-Instruct 模型。
  • requirements.txt:列出Python依赖项(mcp[cli], gradio==4.44.0, smolagents[transformers]).

先决条件

  • 码头工人确保你的系统上安装了Docker。从下载 docker.com 如果需要的话。
  • 用于访问Gradio UI和MCP Inspector的现代网络浏览器。

安装说明

  1. 克隆或创建项目目录

    • 为项目创建一个目录并保存以下文件: Dockerfile, server.py, app.py, agent.py,以及 requirements.txt这些可以从项目源获得或基于提供的内容创建。
  2. 构建Docker镜像

    • 在项目目录中打开一个终端并运行:
      docker build -t mcp-greeting-server .
      
    • 这将构建一个名为的Docker镜像 mcp-greeting-server 安装了所有依赖项。
  3. 运行Docker容器

    • 启动容器,暴露必要的端口(MCP Inspector为6274,Gradio UI为7860,MCP服务器为6275):
      docker run -i --rm -p 6274:6274 -p 7860:7860 -p 6275:6275 mcp-greeting-server
      
    • 这 -i 标志启用交互模式, --rm 停止后取出容器,以及 -p 将容器端口映射到主机。

用法

Gradio用户界面

  • 打开web浏览器并导航到 http://localhost:7860.
  • 在文本框中输入姓名(例如“Alice”)并提交以接收个性化问候(例如“Hello,Alice!欢迎使用MCP服务器”)。
  • 界面采用柔和的主题风格,打造干净的用户体验。

MCP检查员

  • 访问MCP检查员 http://localhost:6274 探索和测试 greet 工具直接。
  • 使用基于web的UI输入名称并查看工具的输出。

斯莫尔特工

  • 这 smolagents CodeAgent 在容器中自动运行,并向控制台输出“Alice”的示例问候语(例如,“Hello,Alice!欢迎来到MCP服务器。”)。
  • 要以编程方式与代理交互,请修改 agent.py 以接受不同的输入或将其与另一个界面集成(例如扩展Gradio UI)。

输出示例

  • Gradio用户界面:输入“Bob”→ 输出:“你好,Bob!欢迎来到MCP服务器。”
  • 斯莫尔特工:控制台日志:“你好,爱丽丝!欢迎来到MCP服务器。”(基于中的默认查询 agent.py).

备注

  • MCP服务器在端口6275上使用HTTP传输来支持 smolagents 整合,如 stdio 代理通信的传输不太可靠。
  • 这 SmolLM2-1.7B-Instruct 模型用于局部推理的效率,但您可以修改 agent.py 使用由支持的不同模型 smolagents.
  • 要扩展项目,请添加更多工具 server.py 或增强Gradio用户界面 app.py 具有附加功能。

故障排除

  • 端口冲突:确保主机上的端口6274、7860和6275未被使用。
  • Docker问题:验证Docker是否正在运行,以及您是否有足够的权限(sudo 在Linux上可能需要)。
  • 依赖项:如果构建失败,请检查 requirements.txt 包括所有必要的包,并且您的Docker环境可以访问互联网。

许可证

本项目按原样提供,用于教育目的。请参阅以下许可证 mcp, gradio,以及 smolagents 根据各自的条款。