使用说明
MCP文件系统服务器
此MCP服务器通过模型上下文协议(MCP)提供对本地文件系统的安全访问。
组件
资源
- 文件://
- 名称:文件系统
- 描述:访问本地文件系统上的文件和目录
工具
文件操作
-
read_file
- 从文件系统读取文件的完整内容
- 参数:
path(必填):要读取的文件的路径
-
读取多个文件
- 在一次操作中读取多个文件的内容
- 参数:
paths(必填):要读取的文件路径列表
-
write_file
- 创建新文件或用新内容覆盖现有文件
- 参数:
path(必填):写入文件的路径,content(必填):要写入文件的内容
-
copy_file
- 复制文件和目录
- 参数:
source(必填):文件或目录的源路径,destination(必填):目标路径
-
move_file
- 移动或重命名文件和目录
- 参数:
source(必填):文件或目录的源路径,destination(必填):目标路径
-
删除文件
- 从文件系统中删除文件或目录
- 参数:
path(必填):要删除的文件或目录的路径,recursive(可选):是否递归删除目录(默认值:false)
-
修改文件
- 通过使用字符串匹配或正则表达式查找和替换文本来更新文件
- 参数:
path(必填):要修改的文件的路径,find(必填):要搜索的文本,replace(必填):文本替换为,all_occurrences(可选):替换所有出现的内容(默认值:true),regex(可选):将查找模式视为正则表达式(默认值:false)
目录操作
-
list_directory
- 获取指定路径中所有文件和目录的详细列表
- 参数:
path(必填):要列出的目录的路径
-
create_directory
- 创建新目录或确保目录存在
- 参数:
path(必填):要创建的目录的路径
-
树
- 返回目录结构的分层JSON表示
- 参数:
path(必填):要遍历的目录的路径,depth(可选):要遍历的最大深度(默认值:3),follow_symlinks(可选):是否遵循符号链接(默认值:false)
搜索和信息
-
搜索文件
- 递归搜索与模式匹配的文件和目录
- 参数:
path(必填):搜索的起始路径,pattern(必填):与文件名匹配的搜索模式
-
搜索内含文件
- 在目录树中搜索文件内容中的文本
- 参数:
path(必填):搜索的起始目录,substring(必填):在文件内容中搜索的文本,depth(可选):要搜索的最大目录深度,max_results(可选):返回的最大结果数(默认值:1000)
-
获取_文件_信息
- 检索有关文件或目录的详细元数据
- 参数:
path(必填):文件或目录的路径
-
list_allowed_directories
- 返回允许此服务器访问的目录列表
- 参数:无
特性
- 安全访问指定目录
- 路径验证以防止目录遍历攻击
- 带安全检查的Symlink解析
- MIME类型检测
- 支持文本、二进制和图像文件
- 内联内容和base64编码的大小限制
入门指南
安装
使用Go安装
go install github.com/mark3labs/mcp-filesystem-server@latest
用法
作为独立服务器
使用允许的目录启动MCP服务器:
mcp-filesystem-server /path/to/allowed/directory [/another/allowed/directory ...]
作为Go项目中的库
package main
import (
"log"
"os"
"github.com/mark3labs/mcp-filesystem-server/filesystemserver"
)
func main() {
// Create a new filesystem server with allowed directories
allowedDirs := []string{"/path/to/allowed/directory", "/another/allowed/directory"}
fs, err := filesystemserver.NewFilesystemServer(allowedDirs)
if err != nil {
log.Fatalf("Failed to create server: %v", err)
}
// Serve requests
if err := fs.Serve(); err != nil {
log.Fatalf("Server error: %v", err)
}
}
使用模型上下文协议
要将此服务器与支持MCP的应用程序集成,请执行以下操作:
{
"mcpServers": {
"filesystem": {
"command": "mcp-filesystem-server",
"args": ["/path/to/allowed/directory", "/another/allowed/directory"]
}
}
}
码头工人
使用Docker运行
您可以使用Docker运行文件系统MCP服务器:
docker run -i --rm ghcr.io/mark3labs/mcp-filesystem-server:latest /path/to/allowed/directory
使用MCP配置Docker
要将Docker镜像与支持MCP的应用程序集成,请执行以下操作:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mark3labs/mcp-filesystem-server:latest",
"/path/to/allowed/directory"
]
}
}
}
如果您需要在容器内进行更改以反映主机文件系统,则可以挂载卷。这允许容器访问和修改主机系统上的文件。这里有一个例子:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--volume=/allowed/directory/in/host:/allowed/directory/in/container",
"ghcr.io/mark3labs/mcp-filesystem-server:latest",
"/allowed/directory/in/container"
]
}
}
}
许可证
请参阅 许可证 文件以获取详细信息。