MCP硬件控制演示
一个展示模型上下文协议(MCP)服务器用于本地硬件控制的演示项目。该项目提供了Go和TypeScript两种跨平台实现,使得AI助手能够通过标准化的MCP工具与系统硬件进行交互。
特性/功能
这个MCP服务器提供了四个硬件控制工具:
- 设置亮度调整屏幕亮度(0-100%)
- 获取亮度获取当前屏幕亮度级别
- 播放声音播放系统通知声音(哔声、警报、成功、错误、默认)
- 打开应用通过名称启动应用程序
支持的平台
- Windows (包括WSL)
- macOS(麦金塔操作系统)
- Linux (带X11)
项目结构
mcp-hardware-control-demo-main/
├── go/ # Go implementation
│ ├── main.go # Main server code
│ ├── go.mod # Go module dependencies
│ └── go.sum # Go module checksums
├── typescript/ # TypeScript implementation
│ ├── src/index.ts # Main server code
│ ├── package.json # Node.js dependencies
│ ├── tsconfig.json # TypeScript configuration
│ └── build/ # Compiled JavaScript output
└── README.md # This file安装
Go 版本
- 确保已安装 Go 1.25 或更高版本
- 导航到 go 目录:
cd go- 安装依赖项:
go mod tidy- 构建服务器:
go build -o mcp-hardware-control main.goTypeScript 版本
- 确保已安装 Node.js 18 或更高版本
- 导航到 TypeScript 目录:
cd typescript- 安装依赖项:
npm install- 构建项目:
npm run build用法
运行服务器
Go 版本
cd go
./mcp-hardware-controlTypeScript 版本
cd typescript
npm start服务器通过stdin/stdout使用MCP协议进行通信,并应与MCP兼容的客户端集成。
工具描述
设置亮度
调整屏幕亮度级别。
参数:
level(整数,0-100):亮度级别(0 = 最小,100 = 最大)
示例:
{
"level": 75
}获取亮度
获取当前屏幕亮度级别。
参数: 无
返回值: 当前亮度百分比
播放声音
播放系统通知声音。
参数:
sound_type(字符串,可选):要播放的声音类型
- "beep"标准蜂鸣声 - "alert"警报声 - "success"成功通知 - "error"错误通知 - "default"默认系统声音
打开应用
打开指定的应用程序。
参数:
app_name(字符串):要打开的应用程序的名称
- Windows:可执行文件名称(例如,“notepad”,“calc”) - macOS:应用程序名称(例如,“计算器”,“Safari”) - Linux:命令名称
平台特定说明
Windows
- 使用 PowerShell 通过 WMI 控制亮度
- 用途
[console]::beep()用于声音播放 - 用途
start打开应用程序的命令
macOS(苹果电脑操作系统)
- 用途
brightness用于调节亮度的CLI工具(支持AppleScript作为备用方案) - 用途
afplay用于系统声音 - 用途
open -a用于应用程序
Linux(发音类似“林克斯”)
- 用途
xrandr用于亮度控制 - 用途
paplay用于声音播放 - 对应用程序使用直接命令执行
依赖项
Go 版本
github.com/modelcontextprotocol/go-sdk v1.0.0
TypeScript 版本
@modelcontextprotocol/sdk ^1.0.4zod ^3.23.8
发展
Go语言开发
cd go
go run main.goTypeScript 开发
cd typescript
npm run dev # Watch mode compilation做出贡献
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支
- 做出你的更改
- 在多个平台上进行测试
- 提交拉取请求
许可证
MIT 许可证 - 详见 LICENSE 文件
作者
罗伯托·莫赖斯
