PC控制服务器

一个功能强大的PC控制服务器,提供文件操作、目录管理、命令执行、系统检查和进程管理等全面控制能力,旨在为AI助手提供高效的主机控制功能。

  • by koopatroopa787
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 koopatroopa787/first_mcp

使用说明

MCP PC控制服务器

一个功能强大的模型上下文协议(MCP)服务器,提供全面的PC控制功能,包括文件操作、目录管理、命令执行、系统检查和进程管理。旨在让AI助手(Claude、GPT、Gemini等)对主机进行全面、高效的控制。

特性

文件操作

  • read_file -使用正确的编码读取完整的文件内容
  • read_file_lines -从文件中读取特定范围的行(对于大文件有效)
  • write_file -创建新文件或覆盖现有文件
  • append_to_file -在不覆盖文件的情况下将内容附加到文件
  • edit_file -使用diff输出进行精确的基于文本的编辑
  • copy_file -将文件复制到新位置(保留源代码)
  • 删除文件 -从文件系统中删除文件
  • move_file -移动或重命名文件和目录
  • 获取_文件_信息 -获取详细的文件元数据(大小、时间戳、权限、可读性)

目录操作

  • create_directory -创建目录(支持嵌套创建)
  • list_directory -列出目录内容及详细信息
  • delete_directory -递归删除目录及其内容
  • 搜索文件 -递归搜索与名称模式匹配的文件

内容搜索

  • search_in_files -对文件中的文本内容进行类似Grep的搜索,具有可选的文件模式过滤和不区分大小写模式

系统操作

  • execute_命令 -使用可选的工作目录和可配置的超时执行shell命令
  • get_system_info -获取操作系统、CPU、内存、正常运行时间、主机名和网络接口详细信息
  • 列表_流程 -使用可选名称筛选器列出正在运行的进程
  • get_environment -读取环境变量(一个或全部)

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
npm install
  1. 构建项目:
npm run build

用法

运行服务器

服务器通过stdio通信,旨在与MCP客户端一起使用:

npm start

使用Claude Desktop进行配置

将此服务器添加到您的Claude Desktop配置文件中:

在macOS上: ~/Library/Application Support/Claude/claude_desktop_config.json

在Windows上: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "pc-control": {
      "command": "node",
      "args": ["/absolute/path/to/first_mcp/build/index.js"]
    }
  }
}

替换 /absolute/path/to/first_mcp 带有此项目目录的实际绝对路径。

与其他AI客户端的配置

任何兼容MCP的客户端(Claude、Cursor、Windsurf、Continue等)都可以使用相同的stdio传输方法连接到此服务器。将客户指向已构建的 build/index.js 和 node.

npx示例(备选)

{
  "mcpServers": {
    "pc-control": {
      "command": "npx",
      "args": ["-y", "mcp-pc-control-server"]
    }
  }
}

可用工具

read_file

{ path: string }

read_file_lines

{
  path: string,
  start: number,  // 1-based, inclusive
  end?: number    // 1-based, inclusive (omit to read to end)
}

write_file

{ path: string, content: string }

append_to_file

{ path: string, content: string }

edit_file

{
  path: string,
  edits: [{ oldText: string, newText: string }]
}

copy_file

{ source: string, destination: string }

create_directory

{ path: string }

list_directory

{ path: string }

删除文件

{ path: string }

delete_directory

{ path: string }

move_file

{ source: string, destination: string }

获取_文件_信息

{ path: string }

execute_命令

{
  command: string,
  workingDirectory?: string,
  timeout?: number  // ms, default 30000
}

搜索文件

{ path: string, pattern: string }  // pattern supports * and **

search_in_files

{
  path: string,
  query: string,
  filePattern?: string,     // e.g. "*.ts"
  caseSensitive?: boolean   // default false
}

get_system_info

{}  // no arguments required

列表_流程

{ filter?: string }  // optional substring filter on process name

get_environment

{ variable?: string }  // omit to get all env vars

安全考虑

警告: 此服务器提供强大的文件系统和命令执行功能。

  • 文件访问: 可以读取、写入和删除进程有权访问的任何文件
  • 命令执行: 可以执行任意shell命令
  • 无沙盒: 操作不受沙盒或限制

建议:

  • 仅与受信任的MCP客户端一起使用
  • 以最低限度的必要权限运行
  • 小心 execute_command 和 delete_directory 工具
  • 考虑为生产使用实施额外的访问控制
  • 审查敏感环境中的所有操作

发展

构建

npm run build

观看模式

npm run watch

项目结构

.
├── src/
│   └── index.ts          # Main server implementation
├── build/                # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交问题或拉取请求。

故障排除

服务器未出现在Claude Desktop中

  1. 检查路径是否正确 claude_desktop_config.json 绝对正确
  2. 验证生成目录是否存在并包含 index.js
  3. 配置更改后重新启动Claude Desktop
  4. 检查Claude Desktop日志是否有错误

权限错误

  • 确保服务器进程具有必要的文件系统权限
  • 在Unix系统上,使用以下命令检查文件/目录权限 ls -la
  • 以适当的用户权限运行您需要的操作

命令执行问题

  • 验证工作目录是否存在并且可访问
  • 检查shell命令是否适合您的操作系统
  • 增加 timeout 长时间运行命令的参数
  • 某些命令可能需要特定的环境变量