mcpField
M
Mcp Smb Server

Mcp Smb Server

本地服务
github.com/natan04文件与存储142 周前更新

关于 Mcp Smb Server

MCP SMB Server 是供 AI Agent 运行时访问 SMB/CIFS 共享或本地目录的文件网关。它只在请求时读取文件,并依赖原生文件系统或 SMB 权限,不索引或复制数据。

主要功能

  1. 01SMB 和本地文件系统访问
  2. 02原生权限控制
  3. 03按需访问文件
  4. 04列出目录并读取指定长度
  5. 05通过 stdio 通信

适用场景

  1. 01读取 SMB 共享中有权限的文件
  2. 02访问配置路径中的本地文件
  3. 03让文件访问遵循操作系统权限

MCP 相关

它向 MCP 客户端提供 `list_directory` 和 `read_file` 工具。MCP 用作运行时控制层,文件授权由底层文件系统或 SMB 服务执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP SMB Server

一个基于 Model Context Protocol(MCP),供 AI Agent 使用的运行时文件访问网关。

该项目允许 AI Agent 在运行时访问 SMB/CIFS 共享或本地文件系统路径,同时 保留原生文件系统权限强制机制。

如果底层系统无法读取某个文件,Agent 也无法读取。


本项目不是什么

  • ❌ 不对文件系统进行索引
  • ❌ 不使用嵌入或向量数据库
  • ❌ 不进行数据同步或预复制
  • ❌ 不绕过权限
  • ❌ 不提供 IAM 或策略引擎

本项目能做什么

  • ✅ 仅在访问时公开文件
  • ✅ 依赖原生 SMB / OS 权限强制机制
  • ✅ 使用 MCP 作为运行时控制平面
  • ✅ 支持 SMB 和 本地文件系统后端
  • ✅ 通过 stdio 通信(适用于 VS Code / Agent)

项目缘起

大多数 AI 文件集成采用以下模式:

Filesystem → Sync → Index → Embed → Agent

这会破坏权限模型,并使撤销权限成为不可能。

本项目采用以下方式:

Agent → MCP → Runtime filesystem access → Native permission check

不建立索引。不复制数据。不重新实现策略。


后端

本地模式
  • 访问本地目录
  • 限制在已配置的基础路径内
  • 使用 OS 权限
SMB 模式
  • 访问 SMB/CIFS 共享
  • 由 SMB 服务处理授权
  • 配置文件中不存储凭据

可用的 MCP 工具

list_directory

列出指定路径下的文件和目录。

参数

  • path(字符串,必需)

read_file

读取文件的指定长度部分。

参数

  • path(字符串,必需)
  • max_bytes(数字,可选,默认值:8192)

配置

配置属于进程级配置,在启动时加载一次。

有关详细配置示例,请参阅配置指南。

快速开始:

# SMB mode with environment variables
export MCP_MODE=smb
export SMB_ADDR=localhost:445
export SMB_SHARE=finance
export SMB_AUTH=ntlm
export SMB_USER=alice
export SMB_PASSWORD=your_password
./mcp-smb-server
# Local mode with config file
./mcp-smb-server --config config.yaml

架构

MCP → FileBackend → { Local | SMB }

服务不会做出授权决策。
所有访问决策均由底层文件系统或 SMB 服务作出。


本项目有意不包含的功能

  • 集中式策略管理
  • 审批工作流
  • 跨后端访问规则
  • 审计汇总

本项目定义了一个精简且正确的执行边界,可在此基础上构建更高层级的治理能力。


安装

前置条件
  • Go 1.24 或更高版本
  • SMB 模式:可访问 SMB/CIFS 服务
  • 本地模式:具备相应的文件系统权限
构建
git clone <repository-url>
cd mcp-smb-server
go build -o mcp-smb-server ./cmd/server

许可证

Apache License 2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。