MCP服务器原型

一个展示交互式UI工具的原型MCP服务器,用于运行shell命令和获取服务器时间。

  • by Jazzcort
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Jazzcort/rhel-mcp-server-prototype

使用说明

RHEL MCP服务器原型

一个原型MCP(模型上下文协议)服务器,演示了用于运行shell命令和获取服务器时间的交互式UI工具。

特性

  • 获取时间工具:使用交互式UI以ISO 8601字符串的形式返回当前服务器时间
  • 运行Shell命令工具:通过交互式UI在服务器上执行shell命令
  • 使用React、TypeScript和MCP SDK构建

先决条件

  • 包子 (运行服务器所需)
  • Node.js(用于npm依赖)

安装

安装依赖项:

npm install

运行项目

开发模式

在开发模式下以热重载运行项目:

npm run dev

这将:

  1. 关注React应用程序的变化并自动重建
  2. 在端口3001上启动MCP服务器

生产模式

构建并运行项目:

npm start

这将:

  1. 使用Vite构建React应用程序
  2. 启动MCP服务器

手动构建

要单独构建应用程序,请执行以下操作:

npm run build

要仅运行服务器,请执行以下操作:

npm run serve

在容器中运行开发模式

docker-compose up -d --build

或

podman compose up -d --build

测试功能

服务器运行后,您可以测试两个主要功能:

1.获取时间工具

  • 工具名称: get-time
  • 以ISO 8601格式返回当前服务器时间
  • 提供用于查看时间的交互式UI

2.运行Shell命令工具

  • 工具名称: run-shell-command
  • 允许您通过交互式UI输入shell命令
  • 工具名称: execute-shell-command (实际执行)
  • 在服务器上执行命令并返回stdout/stderr

项目结构

.
├── server.ts                       # Main MCP server
├── src/
│   ├── mcp-app.tsx                # Get Time React app
│   ├── run-shell-command-app.tsx  # Run Shell Command React app
│   ├── server-utils.ts            # Server utilities
│   └── global.css                 # Global styles
├── dist/                          # Built HTML files
├── mcp-app.html                   # Get Time app entry point
└── run-shell-command-app.html     # Run Shell Command app entry point

开发脚本

  • npm run dev -热重载开发模式
  • npm run build -构建所有应用程序
  • npm run watch -两个应用程序的观看模式
  • npm run serve -仅启动服务器
  • npm start -构建并启动生产模式

使用基本主机可视化UI输出

要查看此MCP服务器的更丰富的UI输出,您可以使用 basic-host 示例来自 @modelcontextprotocol/ext-apps 存储库:

设置

  1. 克隆ext应用程序存储库:

    git clone https://github.com/modelcontextprotocol/ext-apps.git
    cd ext-apps
    
  2. 安装依赖项:

    npm install
    
  3. 导航到基本主机示例并启动它:

    cd examples/basic-host
    npm run dev
    
  4. 打开浏览器http://localhost:8080/

使用主机

  1. 确保此MCP服务器在端口3001上运行:

    npm run dev
    
  2. 在基本主机界面中:

    • 选择服务器(http://localhost:3001)
    • 选择工具(get-time 或 run-shell-command)
    • 提供输入参数(JSON格式)
    • 点击“调用工具”查看交互式UI

基本主机将从该服务器加载React UI应用程序,并将其显示在安全的iframe沙箱中,允许您通过其丰富的UI界面与工具进行交互。

服务器详细信息

MCP服务器在端口上运行 3001 默认情况下,它提供:

  • 基于UI的交互式命令的工具注册
  • 为捆绑的React应用程序提供服务的资源端点
  • Shell命令执行能力