这是一个自定义的模型上下文协议(MCP)服务器实现,为Claude桌面版和其他大语言模型客户端提供文件系统和命令执行工具。
模型上下文协议(MCP)是一个开放协议,它标准化了应用程序如何向大型语言模型(LLM)提供上下文信息。就像USB-C接口为设备连接各种外设提供了标准化方式一样,MCP为AI模型连接不同数据源和工具提供了标准化接口。
本项目实现了一个带有若干实用工具的FastMCP服务器,使Claude和其他LLM能够与您的本地文件系统交互并执行命令。它通过定义良好的工具接口,以可控的方式扩展了LLM访问本地系统的能力。
MCP服务器提供以下文件系统和命令执行工具:
MCP遵循客户端-服务器架构:
uv run mcp install
安装MCP服务器which uv
获取uv
可执行文件的绝对路径uv
可执行文件的绝对路径我的MCP服务器配置如下:
{
"globalShortcut": "",
"mcpServers": {
"zbigniew-mcp": {
"command": "/Users/zbigniewtomanek/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"marker-pdf",
"mcp",
"run",
"/Users/zbigniewtomanek/PycharmProjects/my-mcp-tools/server.py"
]
}
}
}

注意:虽然此实现主要针对Claude桌面版,但MCP设计为与任何兼容MCP的工具或LLM客户端兼容,提供了实现和集成的灵活性。
使用参数列表安全地执行shell命令:
execute_shell_command(["ls", "-la"])
execute_shell_command(["grep", "-r", "TODO", "./src"])
execute_shell_command(["python", "analysis.py", "--input", "data.csv"])
execute_shell_command(["uname", "-a"])

查看文件内容,可指定行范围:
show_file("/path/to/file.txt")
show_file("/path/to/file.txt", num_lines=10)
show_file("/path/to/file.txt", start_line=5, num_lines=10)

使用正则表达式在文件中搜索模式:
search_in_file("/path/to/script.py", r"def\s+\w+\s*\(")
search_in_file("/path/to/code.py", r"#\s*TODO", case_sensitive=False)

对文件进行精确修改:
# 替换文本
edit_file("config.json", replacements={"\"debug\": false": "\"debug\": true"})
# 在第5行插入
edit_file("script.py", line_operations=[{"operation": "insert", "line": 5, "content": "# 新注释"}])
# 删除第10-15行
edit_file("file.txt", line_operations=[{"operation": "delete", "start_line": 10, "end_line": 15}])
# 替换第20行
edit_file("file.txt", line_operations=[{"operation": "replace", "line": 20, "content": "更新后的内容"}])

向文件写入或追加内容:
# 覆盖文件
write_file("/path/to/file.txt", "新内容")
# 追加到文件
write_file("/path/to/log.txt", "日志条目", mode="a")

获取网页内容并转换为PDF(需要安装Chromium),然后使用本地LLM解析为markdown:
fetch_page("https://example.com")

MCP支持客户端和服务器之间通信的多种传输方式:
本实现使用通过文本输入/输出通信的本地MCP服务器。
您可以通过使用@mcp.tool
装饰器添加新工具来轻松扩展此MCP服务器。按照server.py中的模式创建新工具,为您的LLM客户端提供额外功能。
MCP服务器为Claude提供了访问您本地系统的权限。请注意以下事项: