mcpField
M
MCP Tools

MCP Tools

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

关于 MCP Tools

MCP Tools 是一个基于 FastMCP 实现的自定义 MCP 服务,为 Claude Desktop 等 LLM 客户端提供本地文件系统读写和命令执行工具。它面向希望以可控方式让模型访问本机文件的用户。

主要功能

  1. 01执行 shell 命令并返回 stdout/stderr
  2. 02按行范围查看文件内容
  3. 03使用正则表达式搜索文件
  4. 04通过字符串替换或行操作编辑文件
  5. 05写入或追加文件内容

适用场景

  1. 01让模型读取并搜索本地代码文件
  2. 02通过 Claude Desktop 运行本地脚本并查看输出
  3. 03对配置文件进行定点修改

MCP 相关

该项目是 MCP 服务端,将文件查看、搜索、编辑、写入和命令执行功能以工具形式暴露给 MCP 客户端。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MCP 工具

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

什么是模型上下文协议?

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

本项目实现了一个 FastMCP 服务,其中包含多种实用工具,使 Claude 和其他大模型能够与本地文件系统交互并执行命令。它通过定义明确的工具接口,以受控的方式为大模型提供本地系统访问能力,扩展其功能。

MCP 的主要优势

  • 标准化集成:MCP 提供不断增长的预构建集成列表,大模型可以直接接入
  • 供应商灵活性:轻松切换大模型提供商和供应商(Claude、GPT-4o、Gemini 等)
  • 安全性:遵循最佳实践,在基础设施内保护数据
  • 工具开放:封装现有工具,并使其可供任何兼容 MCP 的大模型客户端使用

功能

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

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

MCP 架构

MCP 采用客户端-服务架构:

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

先决条件

  • Python 3.10 或更高版本
  • 兼容 MCP 的客户端(Claude Desktop,或任何其他支持 MCP 的客户端)

安装

  1. 安装 uv
  2. 克隆此仓库或下载源代码
  3. 运行 uv run mcp install 以安装 MCP 服务
  4. 运行 which uv 获取 uv 可执行文件的绝对路径
  5. 在 Claude Desktop 中更新 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 Desktop 连接
  1. 打开 Claude Desktop
  2. 使用标识符 "zbigniew-mcp" 连接到 MCP 服务

注意:虽然此实现侧重于 Claude Desktop,但 MCP 的设计目标是兼容任何兼容 MCP 的工具或大模型客户端,为实现和集成提供灵活性。

可用工具

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

对文件进行精确修改:

# Replace text
edit_file("config.json", replacements={"\"debug\": false": "\"debug\": true"})

# Insert at line 5
edit_file("script.py", line_operations=[{"operation": "insert", "line": 5, "content": "# New comment"}])

# Delete lines 10-15
edit_file("file.txt", line_operations=[{"operation": "delete", "start_line": 10, "end_line": 15}])

# Replace line 20
edit_file("file.txt", line_operations=[{"operation": "replace", "line": 20, "content": "Updated content"}])
write_file

写入内容或向文件追加内容:

# Overwrite file
write_file("/path/to/file.txt", "New content")

# Append to file
write_file("/path/to/log.txt", "Log entry", mode="a")
fetch_page

将网页内容抓取为 PDF(需要安装 chromium),然后使用本地大模型将其解析为 Markdown:

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

传输机制

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

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

此实现使用本地 MCP 服务,通过文本输入/输出进行通信。

使用自定义工具扩展

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

相关项目

安全注意事项

此 MCP 服务允许 Claude 访问你的本地系统。请注意以下事项:

  • 此服务会以你的用户身份执行 shell 命令
  • 它可以读取、写入和修改系统上的文件
  • 如果你担心安全问题,可以考虑将访问权限限制在特定目录

评论

支持 Markdown

第一次接触 MCP?

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

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