RHEL MCP服务器原型
一个原型MCP(模型上下文协议)服务器,演示了用于运行shell命令和获取服务器时间的交互式UI工具。
特性
- 获取时间工具:使用交互式UI以ISO 8601字符串的形式返回当前服务器时间
- 运行Shell命令工具:通过交互式UI在服务器上执行shell命令
- 使用React、TypeScript和MCP SDK构建
先决条件
- 包子 (运行服务器所需)
- Node.js(用于npm依赖)
安装
安装依赖项:
npm install运行项目
开发模式
在开发模式下以热重载运行项目:
npm run dev这将:
- 关注React应用程序的变化并自动重建
- 在端口3001上启动MCP服务器
生产模式
构建并运行项目:
npm start这将:
- 使用Vite构建React应用程序
- 启动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 存储库:
设置
- 克隆ext应用程序存储库:
git clone https://github.com/modelcontextprotocol/ext-apps.git
cd ext-apps- 安装依赖项:
npm install- 导航到基本主机示例并启动它:
cd examples/basic-host
npm run dev- 打开浏览器http://localhost:8080/
使用主机
- 确保此MCP服务器在端口3001上运行:
npm run dev- 在基本主机界面中:
- 选择服务器(http://localhost:3001) - 选择工具(get-time 或 run-shell-command) - 提供输入参数(JSON格式) - 点击“调用工具”查看交互式UI
基本主机将从该服务器加载React UI应用程序,并将其显示在安全的iframe沙箱中,允许您通过其丰富的UI界面与工具进行交互。
服务器详细信息
MCP服务器在端口上运行 3001 默认情况下,它提供:
- 基于UI的交互式命令的工具注册
- 为捆绑的React应用程序提供服务的资源端点
- Shell命令执行能力
