使用说明

项目简介

本项目 'mcp-server-filesystem' 是一个基于 Java 开发的 Model Context Protocol (MCP) 服务器示例,旨在演示如何构建一个能够提供文件系统操作能力的 MCP 后端服务。该服务器通过标准 MCP 协议与客户端通信,允许客户端通过工具调用和 Prompt 模板与本地文件系统进行交互。

主要功能点

  • 资源 (Resources): 提供对本地文件系统的抽象访问能力,声明了 'file://system' 资源,但实际内容为空,主要通过工具和 Prompt 提供文件系统操作。
  • 工具 (Tools):
    • 'read_file': 读取指定路径文件的完整内容。
    • 'list_files': 列出指定目录下符合条件的文件列表,支持文件名正则匹配和递归查找。
  • Prompt 模板 (Prompts):
    • 'read_file': 生成用于指示 LLM 读取指定文件内容的 Prompt 消息。
    • 'list_files': 生成用于指示 LLM 列出指定目录文件列表的 Prompt 消息。
  • 传输协议: 使用标准输入输出 (Stdio) 作为 MCP 服务器的传输协议。

安装步骤

  1. 环境准备: 确保已安装 Java Development Kit (JDK) 和 Maven。
  2. 项目构建: 克隆或下载此仓库代码到本地。
  3. 编译打包: 在项目根目录下,打开命令行终端,执行 'mvn package' 命令进行项目编译和打包。编译成功后,将在 'mcp-server-filesystem/target' 目录下生成 'mcp-server-filesystem-0.1.0.jar' 文件(版本号可能不同)。

服务器配置

MCP 客户端需要配置以下 JSON 格式信息以连接到此 MCP 服务器。请注意,此服务器使用 Stdio 传输协议,因此客户端需要能够通过命令行启动并与其标准输入输出进行通信。

{
  "serverName": "mcp-server-filesystem",
  "command": "java",
  "args": [
    "-cp",
    "mcp-server-filesystem/target/mcp-server-filesystem-0.1.0.jar",
    "com.github.mcp.examples.server.filesystem.McpServer"
  ],
  "transport": "stdio"
}

配置参数说明:

  • 'serverName': 服务器名称,设置为 '"mcp-server-filesystem"'。
  • 'command': 启动服务器的命令,这里使用 'java' 命令。
  • 'args': 启动命令的参数列表:
    • '"-cp"': 指定 classpath。
    • '"mcp-server-filesystem/target/mcp-server-filesystem-0.1.0.jar"': 指向打包生成的 JAR 文件路径。请根据实际 JAR 文件路径进行调整。
    • '"com.github.mcp.examples.server.filesystem.McpServer"': 指定服务器主类。
  • 'transport': 传输协议,设置为 '"stdio"',表明使用标准输入输出进行通信。

基本使用方法

  1. 启动 MCP 服务器: MCP 客户端根据上述配置启动 'mcp-server-filesystem' 服务器。服务器启动后,将通过标准错误输出 (STDERR) 打印 'mcp-server-filesystem 0.1.0 initialized in STDIO mode' 表示服务器已成功初始化。
  2. 客户端交互: MCP 客户端可以通过 JSON-RPC 协议向服务器发送请求,例如:
    • 调用工具: 客户端可以调用 'read_file' 或 'list_files' 工具,并传递相应的参数(如文件路径、目录路径、文件名模式等)来执行文件系统操作。
    • 获取 Prompt: 客户端可以请求 'read_file' 或 'list_files' Prompt 模板,服务器将返回预定义的 Prompt 消息,客户端可以将这些消息发送给 LLM。
  3. 查看结果: 服务器执行工具或 Prompt 后,会将结果以 JSON-RPC 响应的形式返回给客户端。例如,调用 'read_file' 工具后,服务器将返回文件内容。

注意: 本示例服务器默认情况下可能没有严格的权限控制,实际应用中需要根据安全需求进行权限配置和增强。可以通过设置环境变量 'permission' (JSON 格式) 来配置可读文件路径的正则表达式列表,具体请参考 'com.github.mcp.examples.server.filesystem.util.FileAccessHelper' 类。

信息

分类

数据库与文件