项目简介

MCP TypeScript代码分析器是一个功能强大的工具,它通过Model Context Protocol (MCP) 标准,为LLM(大型语言模型)客户端提供深入的TypeScript代码分析能力。利用'ts-morph'库,它能帮助您理解TypeScript代码库的结构、依赖、符号信息和潜在问题。

主要功能点

  • 文件分析: 快速提取TypeScript文件的所有符号、导入和导出信息。
  • 符号分析: 获取函数、类、接口和类型等特定符号的详细信息,包括参数、返回类型、成员等。
  • 引用查找: 在代码库中追踪一个符号的所有使用位置,帮助理解代码的调用模式。
  • 编译错误检测: 无需构建项目即可获取TypeScript编译诊断信息和潜在错误。
  • 文件树生成: 可视化目录结构,并显示每个文件的导入、导出和关键符号,便于总览项目结构。

安装步骤

  1. 安装依赖并构建项目: 在您的项目根目录(或您计划运行此服务器的目录)中,打开终端并执行:
    npm install  # 安装项目依赖
    npm run build  # 构建TypeScript项目
  2. 安装到MCP客户端: 您可以选择安装到所有支持的MCP客户端,或指定安装到某个客户端:
    • 安装到所有客户端:
      npm run install-server
    • 安装到特定客户端:
      # 生产环境客户端 (使用npm包)
      npm run install-cursor    # Cursor IDE (~/.cursor/mcp.json)
      npm run install-desktop   # Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
      npm run install-code      # Claude Code CLI (~/.claude/mcp.json)
      
      # 开发/测试用途
      npm run install-mcp       # 本地开发 (.mcp.json, 在项目根目录)
    安装脚本会自动构建项目,并配置您的MCP客户端使用最新版本的 '@r-mcp/static-analysis' npm 包。如果存在 '.env.local' 文件,其中的环境变量也会被包含在客户端配置中。

服务器配置

MCP客户端需要配置服务器的启动命令和参数才能连接。以下是此MCP服务器的典型配置信息,您通常无需手动编辑,安装脚本会为您完成。但如果您需要手动配置,请参考以下结构:

{
  "mcpServers": {
    "static-analysis": {
      "command": "npx",
      "args": ["-y", "@r-mcp/static-analysis@latest"]
      // "env": { /* 可选: 如果有.env.local中的环境变量,会在这里列出 */ }
    }
  }
}
  • '"static-analysis"': 这是MCP服务器在客户端中的名称,用于标识该服务。
  • '"command"': 启动MCP服务器的命令,这里是 'npx'。
  • '"args"': 传递给 'command' 的参数,用于执行 '@r-mcp/static-analysis' 的最新版本。
  • '"env"': (可选)如果您的项目根目录有 '.env.local' 文件,其中的环境变量会作为键值对在此处配置,供MCP服务器运行时使用。

基本使用方法

安装并重启您的MCP客户端后(例如Cursor IDE, Claude Desktop),您就可以在客户端中通过调用相应的工具来利用此分析器。例如,在一个支持MCP的LLM对话中,您可以这样请求分析:

  • 分析文件:
    mcp.analyze_file({ filePath: "./src/index.ts", analysisType: "all" })
  • 获取符号详情:
    mcp.analyze_symbol({
      symbolIdentifier: {
        filePath: "./src/services/user.ts",
        symbolName: "UserService",
        line: 25
      }
    })
  • 查找符号引用:
    mcp.find_references({
      symbolIdentifier: {
        filePath: "./src/api/users.ts",
        symbolName: "getUserById",
        line: 42
      }
    })
  • 检查编译错误:
    mcp.get_compilation_errors({ path: "./src", verbosity: "normal" })

信息

分类

开发者工具