本项目是一个包含多种工具和MCP服务器实现的单体仓库。它提供了一系列预构建的工具,这些工具可以通过Model Context Protocol (MCP) 以标准化的方式暴露给LLM客户端使用。

主要功能点

本项目包含多个MCP服务器实现,每个实现通常对应一个特定领域的工具集。目前已识别的工具集包括:

  • 文件系统工具 (tools-filesystem-mcp): 提供文件和文件夹的创建、读取、写入、编辑、移动/重命名、删除、列出、搜索内容、获取状态(stat)等操作。
  • 网络工具 (tools-net-mcp, tools-fetch-mcp): 提供获取公共IP、列出网络接口、执行HTTP(s) Fetch请求、文件下载等操作。
  • 数据处理工具 (tools-base64-mcp, tools-json-mcp, tools-xml-mcp): 提供Base64编码/解码、JSON处理(尽管XML工具目前是占位符)等操作。
  • PDF工具 (tools-pdf-mcp): 提供从PDF文件中提取文本内容的功能。
  • 哈希工具 (tools-hasher-mcp): 提供内容哈希计算功能。
  • RAG 工具 (tools-rag-mcp): 提供基于RAG(Retrieval-Augmented Generation)的文档加载、分块、向量化和索引查询等功能。
  • 等待工具 (tools-wait-mcp): 提供一个简单的延迟(等待)功能。

每个 '-mcp' 后缀的包都是一个独立的MCP服务器入口点,启动该包即可运行一个暴露对应工具集的MCP服务器。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/sylphlab/tools.git
    cd tools

    (注意:实际的仓库名称可能与示例不同,请根据实际情况调整 'cd' 命令)

  2. 安装依赖: 本项目使用 pnpm 进行包管理,请确保已安装 pnpm。然后在仓库根目录运行:

    pnpm install
  3. 构建项目: 安装依赖后,需要构建项目以生成可执行文件:

    pnpm build

    这会构建所有包,包括各工具库和MCP服务器入口点。

服务器配置 (供MCP客户端参考)

本项目没有一个单一的、包罗万象的MCP服务器。相反,每个 'packages/tools-*-mcp' 目录下的包都提供了一个独立的MCP服务器实现,专注于暴露其对应的工具集。

为了让MCP客户端连接到其中某个服务器,客户端的配置通常需要指定服务器的启动命令、参数以及工作目录。这些信息可以根据项目的构建产物确定。

以下是一个示例配置结构(JSON格式),您需要根据希望连接的具体工具集(例如文件系统工具或网络工具)来填写 'server name' 和 'command' 及 'cwd'。

{
  "server name": "<服务器名称>",
  "command": ["pnpm", "start"],
  "args": [],
  "cwd": "packages/<包名称>"
}
  • 'server name': 这是MCP服务器对外宣称的名称,对应于特定工具包的 'package.json' 中的 'name' 字段。例如:
    • 文件系统服务器: 'tools-filesystem-mcp'
    • Base64服务器: 'tools-base64-mcp'
    • 网络工具服务器: 'tools-net-mcp' 或 'tools-fetch-mcp'
    • PDF服务器: 'tools-pdf-mcp'
    • RAG服务器: 'tools-rag-mcp'
    • 等待服务器: 'tools-wait-mcp'
    • 哈希服务器: 'tools-hasher-mcp'
  • 'command': 用于启动服务器进程的命令数组。由于本项目是 pnpm 单体仓库,推荐使用 'pnpm start' 命令,结合 'cwd' 来指定启动哪个包。
  • 'args': 传递给命令的额外参数数组,通常为空。
  • 'cwd': 服务器进程的工作目录。对于使用 'pnpm start' 的情况,应将其设置为您希望启动的特定服务器包(例如 'tools-filesystem-mcp')在仓库中的相对路径(例如 'packages/tools-filesystem-mcp'),以便 'pnpm start' 命令能正确找到并执行该包的启动脚本。

基本使用方法

一旦某个特定的MCP工具服务器(例如 'tools-filesystem-mcp')成功运行并与您的MCP客户端建立连接(通常通过标准输入/输出或其他配置的传输方式),LLM客户端就可以通过 MCP 标准协议向该服务器发送 'toolCall' 请求,调用服务器暴露的工具(例如 'listFilesTool'、'readFilesTool' 等),并接收服务器返回的 'toolResult' 响应。具体的工具名称和参数应参考各工具的定义(在代码中由 Zod Schema 定义)。

例如,要调用文件系统服务器的 'listFilesTool' 工具,LLM客户端会发送一个包含工具名称 ('listFilesTool') 和输入参数 ('{ "paths": ["."] }') 的 'toolCall' 请求。服务器执行该工具后,将返回包含文件列表信息的 'toolResult' 响应。

信息

分类

AI与计算