使用说明

项目简介

Project Content Server 是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为语言模型 (LLM) 提供项目文件的内容访问能力。通过此服务器,LLM 客户端可以调用预设的工具,获取指定项目目录下的文件列表及其内容,从而增强 LLM 在代码理解、分析和生成等方面的能力。

主要功能点

  • 文件内容访问: 提供名为 'latest_project_data' 的工具,允许客户端指定项目目录路径,服务器将返回该目录下所有文件的文件名和内容。
  • 基于 MCP 协议: 遵循 MCP 协议规范,使用 JSON-RPC 进行通信,易于与支持 MCP 协议的 LLM 客户端集成。
  • 标准输入/输出 (Stdio) 传输: 使用 Stdio 作为默认的传输协议,简化部署和运行。
  • 错误处理: 提供明确的错误响应格式,方便客户端进行错误处理和重试。

请注意: 该服务器依赖于一个本地配置文件 'cline_mcp_settings.json' 来进行项目路径映射。该配置文件的路径硬编码为 'C:/Users/Mahes/AppData/Roaming/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json',您可能需要根据实际情况修改 'src/index.ts' 文件中的路径。配置文件中需要配置 'mcpServers.ProjectContentServer.directoryMapping' 字段,用于指定项目路径和实际文件系统路径的映射关系。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/MaheshDoiphode/mcp-cline-project-content-server
    cd mcp-cline-project-content-server
  2. 安装依赖:
    npm install
  3. 构建项目:
    npm run build

服务器配置 (MCP 客户端配置)

要将 Project Content Server 集成到 MCP 客户端,您需要配置以下服务器信息。请将以下 JSON 配置添加到您的 MCP 客户端的服务器配置中:

{
  "serverName": "project-content-server",
  "command": "node",
  "args": ["build/index.js"]
}

配置参数说明:

  • 'serverName': 服务器名称,必须与代码中定义的服务器名称 '"project-content-server"' 一致。
  • 'command': 启动服务器的命令,这里使用 'node' 命令来运行 JavaScript 代码。
  • 'args': 命令参数,指定要运行的服务器入口文件路径 'build/index.js'。

重要: 确保您的 MCP 客户端能够执行 'node' 命令,并且 'build/index.js' 文件路径相对于客户端的工作目录是正确的。

基本使用方法

  1. 启动服务器: 按照上述安装步骤构建项目后,MCP 客户端在配置好服务器信息后,会自动启动 Project Content Server。您也可以手动在项目根目录下执行 'node build/index.js' 命令来启动服务器。

  2. 调用 'latest_project_data' 工具: 在 LLM 交互过程中,您可以指示 LLM 客户端调用 'latest_project_data' 工具来获取项目文件内容。调用时需要提供 'projectPath' 参数,指定要访问的项目目录的路径。

示例请求 (JSON-RPC 'CallToolRequest'):

{
  "jsonrpc": "2.0",
  "method": "CallTool",
  "params": {
    "name": "latest_project_data",
    "arguments": {
      "projectPath": "/path/to/your/project"  // 将 "/path/to/your/project" 替换为实际的项目路径
    }
  },
  "id": "123"
}

示例响应 (JSON-RPC 'CallToolResponse'): 服务器将返回一个 JSON 对象,其中包含了项目目录下的文件路径和内容。例如:

{
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"file1.txt\": \"Contents of file1\", \"subdir/file2.js\": \"Contents of file2\"}"
      }
    ]
  },
  "id": "123"
}

请注意,返回的文件内容是 JSON 字符串格式,客��端需要解析 JSON 字符串才能获取文件内容信息。

信息

分类

数据库与文件