mcp 文件
一个小型、快速、模块化的Rust MCP服务器 (加上库),通过简单的IPC/RPC传输公开常见的文件系统操作。它主要用于 LLM代理 以及需要安全、可审计的文件系统访问的其他自动化客户端。
这是给谁的
- LLM代理运行时 需要确定性、工具驱动的文件I/O(读、写、编辑、列表、查找)。
- 自动化框架 它们更喜欢单一的、可审计的文件系统访问服务边界。
- 编辑器/CI/沙盒 希望将文件操作委托给强化服务器。
为什么使用fileio mcp
- 安全地自动化文件操作:将文件系统操作(复制、移动、读取、写入、mkdir、删除、统计等)集中到一个可审计的服务后面。
- 专为LLM代理商打造:提供一个稳定的MCP工具表面,LLM可以确定地调用该表面进行文件I/O。
- 与工具和编辑器集成:将文件操作暴露给无法直接执行某些文件系统任务的编辑器、CI系统或沙盒。
- 减少重复:重用一个经过良好测试的文件原语实现,而不是在多个工具中重新实现跨平台行为。
- 防锈安全和性能:在Rust中实现,具有可预测的性能、强大的错误处理能力和最小的运行时开销。
最终用户利益
- 文件I/O的单一集成点:更少的边缘情况和一致的错误语义。
- 明确的责任分离:服务执行文件工作,而客户端保持轻量级。
- 更容易的权限和审计控制:操作是集中的,可以在传输层进行观察或限制。
- 可扩展操作集:随着需求的发展添加或覆盖操作。
关键能力
- 确定性编辑:结构化编辑操作(
fileio_edit_file)避免脆弱的补丁差异。 - 行感知读取:具有明确的从1开始的行号的灵活读取API。
- 搜索实用程序:使用过滤器和正则表达式支持的文件和内容搜索。
- 安全默认值:明确的错误语义和对破坏性操作的明确控制。
它是什么
fileio-mcp 既是图书馆又是小 MCP服务器/CLI它将一组规范的文件系统操作实现为模块化、可测试的单元(参见 operations/ 文件夹),并通过IPC/RPC将这些操作作为MCP工具公开。主要用例是 LLM代理 需要可靠、确定的文件操作。
关键部件:
src/main.rs-CLI入口点/服务器运行器(二进制fileio-mcp).src/server.rs-服务器编排和请求处理。src/transport.rs-用于接受客户端请求的传输机制的抽象。src/lib.rs-库接口和共享类型。src/operations/-单个操作实现(cp、mv、rm、mkdir、stat、读/写等)。src/error.rs-集中的错误类型和转换工具。
它是如何工作的(高级)
- 客户端通过配置的传输发送请求以执行操作(例如,复制文件或读取行)。
- 服务器接收请求并将其分派给中的匹配操作处理程序
operations/. - 处理程序执行文件系统操作时会仔细处理错误,并返回结构化响应。
- 传输层将响应序列化回客户端。
设计要点:
- 操作是作为重点模块实现的,因此易于测试和推理。
- 传输层和服务器层与文件系统逻辑分开,以允许插入不同的IPC/RPC机制。
- 错误是结构化和传播的,因此客户端可以根据故障模式做出编程决策。
构建和运行
构建项目(需要Rust工具链):
cargo build --release运行服务器二进制文件(示例):
# from repository root
./target/release/fileio-mcp --help确切的传输和运行时标志取决于您如何嵌入或部署服务器;咨询 src/main.rs 对于CLI选项和 src/transport.rs 支持的运输。
使用图书馆
crate可以作为依赖项包含,直接从Rust代码调用操作。图书馆表面位于 src/lib.rs 这些操作可作为以下模块使用 src/operations 用于程序化使用。
扩展操作
要添加操作,请执行以下操作:
- 在中添加新模块
src/operations/它实现了操作逻辑和一个小的处理程序接口。 - 在服务器调度中注册该操作,以便可以通过传输调用它。
- 为快乐和错误路径添加单元测试。
测试
使用以下命令运行测试套件 cargo test。有关容器化、可复制的运行,请参阅 .github/instructions/testing.instructions.md.
贡献
欢迎捐款。请遵循存储库编码风格,并包括对新操作或行为更改的测试。
许可证
此项目使用Apache许可证。有关详细信息,请参阅许可协议和通知。
