MCP TypeScript 分析器
一个使用ts-morph进行TypeScript静态代码分析的模型上下文协议(MCP)服务器。此工具提供了深入的代码分析功能,有助于理解TypeScript代码库。
特点/功能
- 文件分析从TypeScript文件中提取符号、导入项和导出项
- 符号分析获取关于函数、类、接口和类型的详细信息
- 参考发现在代码库中追踪某个符号的所有使用情况
- 编译错误无需构建即可获取 TypeScript 编译诊断信息
安装
先决条件
npm install # Install dependencies
npm run build # Build the TypeScript project安装方法
服务器可以安装到多个兼容MCP的客户端上。每种安装方法都会配置客户端以使用已发布的npm包(@r-mcp/static-analysis),确保您总是能获取到最新版本。
安装到所有客户端
npm run install-server # Installs to all supported clients安装到特定客户端
# Production Clients (using npm package)
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)
# Development/Testing
npm run install-mcp # Local development (.mcp.json in project root)它是如何工作的
安装脚本会自动:
- 构建TypeScript项目
- 配置客户端以使用
npx -y @r-mcp/static-analysis@latest - 包含来自(指定位置或来源的)任何环境变量
.env.local如果存在 - 更新客户端的MCP配置文件
安装后
- Cursor 集成开发环境(IDE)重启或刷新MCP设置
- 克劳德桌面版重启应用程序
- 克劳德·科德使用新配置重启CLI
- 本地开发这个
.mcp.json文件已创建用于测试
可用工具
1. analyze_file
快速分析TypeScript文件,以提取所有符号、导入和导出项。
参数:
filePath(字符串,必填):TypeScript 文件的路径analysisType(enum): “symbols”(符号)、“dependencies”(依赖项)或“all”(全部)(默认值:“all”)includeDefinition(布尔值):是否包含符号定义位置(默认:false)
2. analyze_symbol
获取特定符号的详细分析,包括参数、返回类型和成员。
参数:
symbolIdentifier(对象,必需):
- filePath (字符串):文件路径 - symbolName (字符串):符号的名称 - line (数字):符号出现的行号(从1开始计数)
maxTypeLength(数字):最大类型字符串长度(默认:无限制)
3. find_references
在代码库中查找所有对该符号的引用,以理解其使用模式。
参数:
symbolIdentifier(对象,必需):
- filePath (字符串):文件路径 - symbolName (字符串):符号的名称 - line (数字):符号出现的行号(从1开始计数)
maxResults(数字):要返回的最大引用数(默认:100)
4. get_compilation_errors
无需构建项目即可获取 TypeScript 编译错误。
参数:
path(字符串,必填):要分析的文件或目录路径includeWarnings(boolean): 是否包含警告(默认:true)includeInfo(boolean): 是否包含信息消息(默认:false)filePattern(字符串): 文件的全局模式(默认: "\*\*/\*.{ts,tsx}")maxFiles(数字):最大分析文件数(默认:25)verbosity(枚举类型):"minimal"(最小)、"normal"(正常)或 "detailed"(详细)(默认值:"normal")
性能特点
- 智能缓存自动缓存已解析文件以加快分析速度
- 并行处理同时处理多个文件
- 内存管理内置内存监控以防止崩溃
- 错误恢复优雅地处理 TypeScript 错误和无效文件
配置
服务器会自动检测并使用您的项目中的 tsconfig.json 文件用于精确的类型分析。无需额外配置。
使用示例
分析一个TypeScript文件
// Analyze src/index.ts
await mcp.analyze_file({
filePath: "./src/index.ts",
analysisType: "all"
})获取详细的符号信息
// Get details about a UserService class on line 25
await mcp.analyze_symbol({
symbolIdentifier: {
filePath: "./src/services/user.ts",
symbolName: "UserService",
line: 25
}
})查找所有对该符号的引用
// Find where getUserById is used
await mcp.find_references({
symbolIdentifier: {
filePath: "./src/api/users.ts",
symbolName: "getUserById",
line: 42
}
})检查 TypeScript 错误
// Check entire src directory for errors
await mcp.get_compilation_errors({
path: "./src",
verbosity: "normal"
})发展
发布更新
要在npm上发布新版本:
npm run release # Builds, commits, and publishes to npm这个命令负责处理整个发布过程,包括版本升级、Git 操作以及 npm 发布。
要求
- Node.js 18及以上版本
- 带有(某种特性/配置等的)TypeScript项目
tsconfig.json
许可证
麻省理工学院(MIT)
