项目上下文分析服务

一个为IDE中的AI代理提供项目结构和文件内容分析的服务。

  • by RikoAppDev
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 RikoAppDev/mcp-project-context

使用说明

MCP项目上下文服务器

MCP(模型上下文协议)服务器,使任何IDE中的AI代理能够分析和获取系统上任何项目的上下文。

特性

服务器为AI代理提供以下工具:

工具 说明
set_project_path 设置要分析的项目的路径
get_project_structure 获取项目的目录树结构
list_files 列出项目中的所有文件
read_file 读取特定文件的内容
read_multiple_files 一次读取多个文件
search_in_files 在项目文件中搜索文本/正则表达式模式
get_file_info 获取文件元数据(大小、修改日期)
get_project_summary 获取项目摘要(文件类型、技术检测)

安装

npm install
npm run build

用法

1.运行服务器

npm start

或者通过环境变量设置项目路径:

# Windows PowerShell
$env:PROJECT_PATH="C:\path\to\your\project"; npm start

# Windows CMD
set PROJECT_PATH=C:\path\to\your\project && npm start

# Linux/Mac
PROJECT_PATH=/path/to/your/project npm start

2.IDE配置

在IDE中配置支持模型上下文协议的MCP服务器。

VS代码(带Copilot或其他MCP兼容扩展)

添加到您的VS代码设置或MCP配置文件中:

{
  "mcpServers": {
    "project-context": {
      "command": "node",
      "args": ["/path/to/mcp-project-context/dist/mcp-server.js"],
      "env": {
        "PROJECT_PATH": "/path/to/project/you/want/to/analyze"
      }
    }
  }
}

JetBrains IDE与GitHub Copilot(安卓工作室、IntelliJ IDEA、WebStorm、PyCharm等)

打开或创建 mcp.json JetBrains IDE中的文件(设置→ 工具→ GitHub Copilot→ MCP服务器,或在IDE配置目录中找到它)并添加:

{
  "servers": {
    "project-context": {
      "type": "stdio",
      "command": "node",
      "args": ["C:\\path\\to\\mcp-project-context\\dist\\mcp-server.js"],
      "env": {
        "PROJECT_PATH": "C:\\path\\to\\project\\you\\want\\to\\analyze"
      }
    }
  }
}

注: 在Windows上使用双反斜杠 \\ 或正斜杠 / 在道路上。

光标、Windsurf或其他MCP兼容编辑器

检查编辑器的文档以了解MCP服务器配置。配置格式通常类似:

{
  "project-context": {
    "command": "node",
    "args": ["/path/to/mcp-project-context/dist/mcp-server.js"]
  }
}

全局MCP配置

您还可以创建全局配置文件:

  • Linux/Mac: ~/.config/mcp/servers.json
  • 窗户: %APPDATA%\mcp\servers.json
{
  "project-context": {
    "command": "node",
    "args": ["/path/to/mcp-project-context/dist/mcp-server.js"]
  }
}

3.与AI Agent配合使用

一旦连接,AI代理就可以使用这些工具:

  1. 首先,设置项目路径:

    set_project_path({ projectPath: "/home/user/projects/my-app" })
    
  2. 获取项目概述:

    get_project_summary()
    
  3. 探索结构:

    get_project_structure({ maxDepth: 3 })
    
  4. 读取特定文件:

    read_file({ relativePath: "src/main.ts" })
    
  5. 在代码中搜索:

    search_in_files({ query: "function handleClick", filePattern: ".ts" })
    

安全

  • 服务器会自动忽略二进制文件和常见目录,如 node_modules, .git, build
  • 访问仅限于配置的项目目录中的文件
  • 无法读取项目目录外的文件(路径遍历保护)

忽略的目录

  • 节点模块
  • .git
  • .想法
  • .gradle
  • 构建
  • .下一个
  • 距离
  • 出
  • __pycache__
  • venv,venv

忽略的文件类型

  • 图片:.jpg、.jpeg、.png、.gif、.ico、.svg
  • 档案:.zip、.tar、.gz
  • 二进制文件:.exe、.dll、.so、.class、.jar、.apk、.aab
  • 日志:.lock、.log

许可证

麻省理工学院