硬件控制演示

一个展示Model Context Protocol (MCP)服务器用于本地硬件控制的演示项目,提供Go和TypeScript的跨平台实现,允许AI助手通过标准化的MCP工具与系统硬件交互。

  • by FuenRob
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 FuenRob/mcp-hardware-control-demo

使用说明

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 版本

  1. 确保已安装 Go 1.25 或更高版本
  2. 导航到 go 目录:
    cd go
    
  3. 安装依赖项:
    go mod tidy
    
  4. 构建服务器:
    go build -o mcp-hardware-control main.go
    

TypeScript 版本

  1. 确保已安装 Node.js 18 或更高版本
  2. 导航到 TypeScript 目录:
    cd typescript
    
  3. 安装依赖项:
    npm install
    
  4. 构建项目:
    npm run build
    

用法

运行服务器

Go 版本

cd go
./mcp-hardware-control

TypeScript 版本

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.4
  • zod ^3.23.8

发展

Go语言开发

cd go
go run main.go

TypeScript 开发

cd typescript
npm run dev  # Watch mode compilation

做出贡献

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建一个特性分支
  3. 做出你的更改
  4. 在多个平台上进行测试
  5. 提交拉取请求

许可证

MIT 许可证 - 详见 LICENSE 文件

作者

罗伯托·莫赖斯

相关项目