MCP2Serial
- docs
- zh
# MCP2Serial 安装指南
## 环境要求
- Python 3.11 或更高版本
- uv 包管理器
- 串口设备(如Arduino、树莓派Pico等)
### 安装
#### Windows用户
```bash
# 下载安装脚本
curl -O https://raw.githubusercontent.com/mcp2everything/mcp2serial/main/install.py
# 运行安装脚本
python install.py
```
#### MacOS用户
```bash
# 下载安装脚本
curl -O https://raw.githubusercontent.com/mcp2everything/mcp2serial/main/install_macos.py
# 运行安装脚本
python3 install_macos.py
```
#### Ubuntu/Raspberry Pi用户
```bash
# 下载安装脚本
curl -O https://raw.githubusercontent.com/mcp2everything/mcp2serial/main/install_ubuntu.py
# 运行安装脚本
python3 install_ubuntu.py
```
安装脚本会自动完成以下操作:
- ✅ 检查系统环境
- ✅ 安装必要的依赖
- ✅ 创建默认配置文件
- ✅ 配置Claude桌面版(如果已安装)
- ✅ 检查串口设备
## 手动安装
如果你不想使用安装脚本,也可以手动安装:
### 方式一:通过 pip 安装
1. 确保已安装 Python 3.11+
2. 安装 uv 包管理器:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
3. 创建虚拟环境:
```bash
uv venv .venv
```
4. 激活虚拟环境:
- Windows: `.venv\Scripts\activate`
- macOS/Linux: `source .venv/bin/activate`
5. 安装 mcp2serial:
```bash
uv pip install mcp2serial
```
### 方式二:通过源码安装
1. 克隆仓库:
```bash
git clone https://github.com/mcp2everything/mcp2serial.git
cd mcp2serial
```
2. 创建虚拟环境:
```bash
uv venv .venv
```
3. 激活虚拟环境:
- Windows: `.venv\Scripts\activate`
- macOS/Linux: `source .venv/bin/activate`
4. 安装开发依赖:
```bash
uv pip install --editable .
```
## 配置说明
### 配置文件位置
配置文件(`config.yaml`)可以放在不同位置,程序会按以下顺序查找:
#### 1. 当前工作目录(适合开发测试)
- 路径:`./config.yaml`
- 示例:如果你在 `C:\Projects` 运行程序,它会查找 `C:\Projects\config.yaml`
- 适用场景:开发和测试
- 不需要特殊权限
#### 2. 用户主目录(推荐个人使用)
```bash
# Windows系统
C:\Users\用户名\.mcp2serial\config.yaml
# macOS系统
/Users/用户名/.mcp2serial/config.yaml
# Linux系统
/home/用户名/.mcp2serial/config.yaml
```
- 适用场景:个人配置
- 需要创建 `.mcp2serial` 目录:
```bash
# Windows系统(在命令提示符中)
mkdir "%USERPROFILE%\.mcp2serial"
# macOS/Linux系统
mkdir -p ~/.mcp2serial
```
#### 3. 系统级配置(适合多用户环境)
```bash
# Windows系统(需要管理员权限)
C:\ProgramData\mcp2serial\config.yaml
# macOS/Linux系统(需要root权限)
/etc/mcp2serial/config.yaml
```
- 适用场景:多用户共享配置
- 创建目录并设置权限:
```bash
# Windows系统(以管理员身份运行)
mkdir "C:\ProgramData\mcp2serial"
# macOS/Linux系统(以root身份运行)
sudo mkdir -p /etc/mcp2serial
sudo chown root:root /etc/mcp2serial
sudo chmod 755 /etc/mcp2serial
```
程序会按照上述顺序查找配置文件,使用找到的第一个有效配置文件。根据你的需求选择合适的位置:
- 开发测试:使用当前目录
- 个人使用:建议使用用户主目录(推荐)
- 多用户环境:使用系统级配置(ProgramData或/etc)
### 串口配置
在 `config.yaml` 文件中配置串口参数:
```yaml
serial:
port: COM11 # Windows系统示例,Linux下可能是 /dev/ttyUSB0
baud_rate: 115200 # 波特率
timeout: 1.0 # 串口超时时间(秒)
read_timeout: 0.5 # 读取超时时间(秒)
```
如果不指定 `port`,程序会自动搜索可用的串口设备。
### 命令配置
在 `config.yaml` 中添加自定义命令:
```yaml
commands:
# PWM控制命令示例
set_pwm:
command: "PWM {frequency}\n" # 实际发送的命令格式
need_parse: false # 不需要解析响应
prompts: # 提示语列表
- "把PWM调到{value}"
- "关闭PWM"
# LED控制命令示例
led_control:
command: "LED {state}\n" # state可以是on/off或其他值
need_parse: false
prompts:
- "打开LED"
- "关闭LED"
- "设置LED状态为{state}"
# 带响应解析的命令示例
get_sensor:
command: "GET_SENSOR\n"
need_parse: true # 需要解析响应
prompts:
- "读取传感器数据"
```
### 响应解析说明
1. 简单响应(`need_parse: false`):
- 设备返回 "OK" 开头的消息表示成功
- 其他响应将被视为错误
2. 需要解析的响应(`need_parse: true`):
- 完整响应将在 `result.raw` 字段中返回
- 可以在应用层进行进一步解析
响应示例:
```python
# 简单响应
{"status": "success"}
# 需要解析的响应
{"status": "success", "result": {"raw": "OK TEMP=25.5,HUMIDITY=60%"}}
```
### MCP客户端配置
在使用支持MCP协议的客户端(如Claude Desktop或Cline)时,需要在客户端的配置文件中添加以下内容:
直接自动安装的配置方式
```json
{
"mcpServers": {
"mcp2serial": {
"command": "uvx",
"args": ["mcp2serial"]
}
}
}
```
源码开发的配置方式
```json
{
"mcpServers": {
"mcp2serial": {
"command": "uv",
"args": [
"--directory",
"你的实际路径/mcp2serial", // 例如: "C:/Users/Administrator/Documents/develop/my-mcp-server/mcp2serial"
"run",
"mcp2serial"
]
}
}
}
```
<div align="center">
<img src="../images/client_config.png" alt="客户端配置示例" width="600"/>
<p>在 Claude Desktop 中的配置示例</p>
</div>
<div align="center">
<img src="../images/cline_config.png" alt="Cline配置示例" width="600"/>
<p>在 Cline 中的配置示例</p>
</div>
> **注意事项:**
> 1. 路径必须使用完整的绝对路径
> 2. 使用正斜杠(/)或双反斜杠(\\)作为路径分隔符
> 3. 确保路径指向实际的项目安装目录
## 源码开发步骤
1. 克隆项目代码:
```bash
# 克隆代码库
git clone https://github.com/mcp2everything/mcp2serial.git
```
2. 创建并激活虚拟环境:
```bash
# 进入项目目录
cd mcp2serial
# 使用 uv 创建虚拟环境并安装依赖
uv venv .venv
.venv\Scripts\activate
# 安装依赖
uv pip install -r requirements.txt
```
> **注意:** 项目即将发布到PyPI,届时可以直接通过pip安装。
## 运行服务器
```bash
# 确保在项目根目录下
cd mcp2serial
# 激活虚拟环境(如果尚未激活)
.venv\Scripts\activate
# 运行服务器
uv run src/mcp2serial/server.py
```
## 故障排除
1. 串口连接问题:
- 确认设备已正确连接
- 检查串口号是否正确
- 验证波特率设置
- 检查串口权限(Linux系统)
2. 命令超时:
- 检查 `timeout` 和 `read_timeout` 设置
- 确认设备响应时间
## 测试
运行测试用例:
```bash
# 激活虚拟环境(如果尚未激活)
.venv\Scripts\activate
# 运行测试
uv run pytest tests/