首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
my-mcp-server2025-05-290分享
github
一个自定义的模型上下文协议服务器,它通过标准化的工具接口为克劳德桌面和其他大型语言模型提供文件系统操作和命令执行能力。
By ZbigniewTomanek
2025-05-290
github
详情内容

MCP工具集

这是一个自定义的模型上下文协议(MCP)服务器实现,为Claude桌面版和其他大语言模型客户端提供文件系统和命令执行工具。

什么是模型上下文协议?

模型上下文协议(MCP)是一个开放协议,它标准化了应用程序如何向大型语言模型(LLM)提供上下文信息。就像USB-C接口为设备连接各种外设提供了标准化方式一样,MCP为AI模型连接不同数据源和工具提供了标准化接口。

本项目实现了一个带有若干实用工具的FastMCP服务器,使Claude和其他LLM能够与您的本地文件系统交互并执行命令。它通过定义良好的工具接口,以可控的方式扩展了LLM访问本地系统的能力。

MCP的主要优势

  • 标准化集成:MCP提供不断增长的预构建集成列表,您的LLM可以直接接入使用
  • 供应商灵活性:可以轻松在LLM提供商和供应商(Claude、GPT-4o、Gemini等)之间切换
  • 安全性:在您的基础架构内保护数据的最佳实践
  • 工具暴露:封装现有工具,使其可被任何兼容MCP的LLM客户端访问

功能特性

MCP服务器提供以下文件系统和命令执行工具:

  • execute_shell_command:执行shell命令并获取stdout/stderr结果
  • show_file:查看文件内容,可指定行范围
  • search_in_file:使用正则表达式在文件中搜索模式
  • edit_file:通过字符串替换和行操作对文件进行精确修改
  • write_file:向文件写入或追加内容

MCP架构

MCP遵循客户端-服务器架构:

  • 主机:发起连接的LLM应用程序(如Claude桌面版或IDE)
  • 客户端:在主机应用程序内与服务器保持1:1连接
  • 服务器:向客户端提供上下文、工具和提示(本项目实现了服务器)

先决条件

  • Python 3.10或更高版本
  • 兼容MCP的客户端(Claude桌面版或任何支持MCP的客户端)

安装步骤

  1. 安装uv
  2. 克隆此仓库或下载源代码
  3. 运行uv run mcp install安装MCP服务器
  4. 运行which uv获取uv可执行文件的绝对路径
  5. 在Claude桌面版中更新您的MCP服务器配置,使用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桌面版连接

  1. 打开Claude桌面版
  2. 使用标识符"zbigniew-mcp"连接到MCP服务器

注意:虽然此实现主要针对Claude桌面版,但MCP设计为与任何兼容MCP的工具或LLM客户端兼容,提供了实现和集成的灵活性。

可用工具

execute_shell_command

使用参数列表安全地执行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

查看文件内容,可指定行范围:

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

使用正则表达式在文件中搜索模式:

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

对文件进行精确修改:

# 替换文本
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

向文件写入或追加内容:

# 覆盖文件
write_file("/path/to/file.txt", "新内容")

# 追加到文件
write_file("/path/to/log.txt", "日志条目", mode="a")

fetch_page

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

fetch_page("https://example.com")

传输机制

MCP支持客户端和服务器之间通信的多种传输方式:

  • 标准输入/输出(stdio):使用标准输入/输出进行通信,适合本地进程
  • 服务器发送事件(SSE):通过HTTP POST请求实现服务器到客户端的流式传输,客户端到服务器的通信

本实现使用通过文本输入/输出通信的本地MCP服务器。

扩展自定义工具

您可以通过使用@mcp.tool装饰器添加新工具来轻松扩展此MCP服务器。按照server.py中的模式创建新工具,为您的LLM客户端提供额外功能。

相关项目

安全注意事项

MCP服务器为Claude提供了访问您本地系统的权限。请注意以下事项:

  • 服务器以您的用户身份执行shell命令
  • 它可以读取、写入和修改您系统上的文件
  • 如果安全性是关注点,请考虑限制对特定目录的访问
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档