| name | file-operation |
| description | Perform file operations, tool integrations, and MCP configurations. Invoke when users need to read/write files, execute third-party tools, manage file systems, or configure and use Model Context Protocol (MCP) integrations. |
File Operation Skill
文件操作、工具调用、用户配置的 MCP 等技能。用于安全执行文件读写、第三方工具调用等操作。
使用场景
当用户需要以下服务时,必须使用此技能:
文件操作类
- "帮我读取这个文件的内容"
- "把这个数据保存成 CSV 文件"
- "批量重命名这些文件"
- "整理这个文件夹的文件"
- "压缩/解压这个文件"
工具调用类
- "用 Python 处理这个数据"
- "运行这个脚本"
- "调用 XXX 工具完成 XXX"
- "执行命令行操作"
MCP 配置类
- "配置 XXX 的 MCP 连接"
- "使用 XXX MCP 工具"
- "设置 MCP 服务器"
数据转换类
- "把 JSON 转成 Excel"
- "把 PDF 转成文本"
- "转换这个文件格式"
- "提取文件中的信息"
核心能力
1. 文件读写操作
- 安全读取各类文件(文本、CSV、JSON、XML 等)
- 写入和追加文件内容
- 批量文件处理
- 文件编码检测和转换
- 大文件分块处理
2. 文件系统管理
- 创建/删除/重命名文件和目录
- 移动和复制文件
- 搜索和过滤文件
- 获取文件信息和元数据
- 目录结构遍历
3. 工具集成调用
- 执行命令行工具
- 调用 Python 脚本
- 运行第三方程序
- API 接口调用
- 自动化工具使用
4. MCP 集成使用
- 配置 MCP 服务器连接
- 使用 MCP 提供的工具
- 管理 MCP 资源
- 处理 MCP 响应
- 错误处理和重试
5. 数据格式转换
- JSON ↔ CSV ↔ Excel
- XML ↔ JSON
- PDF ↔ 文本
- 图片格式转换
- 编码格式转换
工作流程
第一步:需求确认
- 明确操作类型(读/写/转换/执行)
- 确认文件路径和格式
- 了解预期输出
- 评估操作风险
第二步:安全检查
- 验证文件路径合法性
- 检查文件权限
- 确认操作不会影响关键文件
- 备份重要数据(如需要)
第三步:方案制定
- 选择合适的工具/方法
- 设计操作步骤
- 准备错误处理方案
- 预估执行时间
第四步:执行操作
- 按步骤执行操作
- 监控执行过程
- 记录关键信息
- 处理异常情况
第五步:结果验证
- 检查操作结果
- 验证输出正确性
- 确认文件完整性
- 清理临时文件
第六步:反馈报告
- 总结操作结果
- 说明遇到的问题
- 提供后续建议
- 记录操作日志
安全准则
文件操作安全
禁止操作
- 不修改系统文件
- 不删除用户未明确指定的文件
- 不访问敏感目录(如系统目录、其他用户目录)
- 不执行未经验证的可执行文件
必须确认
- 重要操作前必须获得用户确认
- 批量操作前必须说明影响范围
- 删除操作必须列出具体文件清单
- 覆盖写入前必须确认备份方案
备份策略
- 修改重要文件前自动创建备份
- 备份文件添加时间戳
- 保留操作回滚能力
- 明确告知用户备份位置
工具调用安全
命令执行限制
- 不执行危险命令(如 rm -rf /、format 等)
- 不执行未经验证的外部脚本
- 不以管理员权限执行不必要的操作
- 不执行隐藏的系统调用
资源使用限制
- 不执行可能耗尽资源的操作
- 限制递归深度和循环次数
- 设置超时时间防止无限执行
- 监控内存和 CPU 使用
网络操作限制
- 不访问可疑的外部地址
- 不发送敏感信息到未验证的端点
- 不下载和执行远程代码
- 不使用不安全的协议
MCP 使用安全
配置安全
- 使用官方或可信的 MCP 服务器
- 验证服务器证书和身份
- 使用最小权限原则配置
- 定期更新和审查配置
调用安全
- 验证 MCP 返回的数据
- 限制 MCP 的访问范围
- 监控异常调用行为
- 记录所有 MCP 交互
常用操作指南
文件读取
import os
import chardet
def safe_read_file(file_path):
if not os.path.exists(file_path):
raise FileNotFoundError(f"文件不存在:{file_path}")
with open(file_path, 'rb') as f:
encoding = chardet.detect(f.read())['encoding']
with open(file_path, 'r', encoding=encoding) as f:
content = f.read()
return content
文件写入
import os
import shutil
from datetime import datetime
def safe_write_file(file_path, content, backup=True):
if backup and os.path.exists(file_path):
backup_path = f"{file_path}.backup.{datetime.now().strftime('%Y%m%d_%H%M%S')}"
shutil.copy2(file_path, backup_path)
print(f"已创建备份:{backup_path}")
os.makedirs(os.path.dirname(file_path), exist_ok=True)
with open(file_path, 'w', encoding='utf-8') as f:
f.write(content)
print(f"文件已保存:{file_path}")
批量文件处理
import os
import glob
def batch_process_files(directory, pattern, process_func):
files = glob.glob(os.path.join(directory, pattern))
if not files:
print("未找到匹配的文件")
return
print(f"找到 {len(files)} 个文件")
for file_path in files:
try:
process_func(file_path)
print(f"✓ 处理完成:{file_path}")
except Exception as e:
print(f"✗ 处理失败:{file_path} - {e}")
数据格式转换
import json
import csv
def json_to_csv(json_file, csv_file):
with open(json_file, 'r', encoding='utf-8') as f:
data = json.load(f)
if not isinstance(data, list):
data = [data]
if data:
fieldnames = list(data[0].keys())
with open(csv_file, 'w', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print(f"转换完成:{json_file} -> {csv_file}")
MCP 配置指南
MCP 基础配置
{
"mcpServers": {
"server-name": {
"command": "node",
"args": ["/path/to/server.js"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}
常用 MCP 服务器
文件系统 MCP
- 功能:提供安全的文件操作接口
- 配置:指定可访问的目录范围
- 使用:读取、写入、搜索文件
数据库 MCP
- 功能:数据库连接和查询
- 配置:连接字符串、权限设置
- 使用:执行 SQL 查询、数据导出
API 集成 MCP
- 功能:第三方 API 调用
- 配置:API 密钥、端点地址
- 使用:调用外部服务
MCP 使用最佳实践
-
最小权限原则
-
错误处理
- 捕获并记录所有异常
- 提供清晰的错误信息
- 实现重试机制
-
日志记录
- 记录所有 MCP 调用
- 包含时间戳和参数
- 便于审计和调试
-
性能优化
- 批量操作减少调用次数
- 使用连接池
- 设置合理的超时时间
输出格式
操作报告
# 文件操作报告
## 操作概述
- 操作类型:[读/写/转换/执行]
- 操作时间:[时间戳]
- 涉及文件:[文件清单]
## 执行结果
### 成功的操作
1. [操作 1] - ✓ 完成
2. [操作 2] - ✓ 完成
### 失败的操作
1. [操作] - ✗ 失败
- 原因:[说明]
- 建议:[解决方案]
## 输出文件
- [文件路径 1]
- [文件路径 2]
## 注意事项
[需要用户知晓的事项]
## 后续建议
[下一步操作建议]
错误报告
# 错误报告
## 错误概述
- 错误类型:[类型]
- 发生时间:[时间戳]
- 影响范围:[说明]
## 错误详情
[详细的错误信息]
## 可能原因
1. [原因 1]
2. [原因 2]
## 解决方案
1. [方案 1]
2. [方案 2]
## 已采取的补救措施
[已执行的操作]
## 需要的用户操作
[需要用户确认或执行的事项]
质量标准
操作准确性
- 严格按照用户需求执行
- 验证每一步的结果
- 确保数据完整性
- 不丢失或损坏文件
安全合规性
- 遵守所有安全准则
- 不执行危险操作
- 保护用户隐私
- 符合最佳实践
错误处理
- 完善的异常捕获
- 清晰的错误信息
- 合理的重试机制
- 适当的回滚方案
用户体验
- 操作前明确告知影响
- 操作中提供进度反馈
- 操作后总结结果
- 文档清晰易懂
注意事项
必须遵守
- 始终验证文件路径
- 重要操作前创建备份
- 详细记录所有操作
- 及时处理异常
- 清理临时文件
避免行为
- 不假设文件编码
- 不忽略错误信息
- 不处理超出限制的大文件
- 不访问未授权的目录
- 不执行未经验证的命令
特殊情况处理
- 文件被占用:提示用户关闭文件
- 权限不足:请求用户授权
- 磁盘空间不足:提前检查并警告
- 网络中断:实现重试机制
- 格式不支持:提供替代方案
示例
示例 1:批量文件重命名
用户需求:把这个文件夹里的所有图片按顺序重命名
操作流程:
- 扫描目录获取文件列表
- 按时间或名称排序
- 生成新文件名
- 逐个重命名(带备份)
- 报告操作结果
示例 2:数据格式转换
用户需求:把这个 JSON 数据转成 Excel 表格
操作流程:
- 读取并验证 JSON 文件
- 解析数据结构
- 转换为表格格式
- 写入 Excel 文件
- 验证转换结果
示例 3:MCP 工具调用
用户需求:使用配置的数据库 MCP 查询销售数据
操作流程:
- 验证 MCP 配置
- 建立数据库连接
- 执行 SQL 查询
- 处理返回结果
- 格式化输出
- 关闭连接