TS悬停MCP
为AI代理提供TypeScript类型推断——无需编辑器。
一个独立的MCP服务器,通过以下方式提供TypeScript类型信息 tsgo (基于Go的TypeScript编译器)。适用于任何MCP客户端——Cursor、Claude Desktop、VS Code、Windsurf或任何其他代理。
不需要运行编辑器。它直接生成和管理tsgo LSP实例,为快速的后续查询保持温暖。
先决条件
全局安装tsgo:
npm install -g @typescript/native-preview
# or
bun add -g @typescript/native-preview
# or
pnpm add -g @typescript/native-preview
# or
yarn global add @typescript/native-preview安装
光标

或手动添加到 .cursor/mcp.json:
{
"mcpServers": {
"ts-hover": {
"command": "npx",
"args": ["-y", "@zachsents/ts-mcp"]
}
}
}VS Code
添加到用户设置(JSON):
{
"mcp": {
"servers": {
"ts-hover": {
"command": "npx",
"args": ["-y", "@zachsents/ts-mcp"]
}
}
}
}克劳德桌面版
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"ts-hover": {
"command": "npx",
"args": ["-y", "@zachsents/ts-mcp"]
}
}
}克劳德代码
claude mcp add-json ts-hover '{"command":"npx","args":["-y","@zachsents/ts-mcp"]}'帆板运动
添加到您的Windsurf MCP配置中:
{
"mcpServers": {
"ts-hover": {
"command": "npx",
"args": ["-y", "@zachsents/ts-mcp"]
}
}
}运作原理
- 代理调用工具(例如。
hover带有文件路径和位置) - MCP服务器找到最近的
tsconfig.json确定项目根 - 它为该项目生成(或重用)一个tsgo LSP实例
- 返回类型信息
- tsgo实例保持热态5分钟,几乎可以立即进行后续查询
多个项目根是自动处理的——每个根都有自己的tsgo实例。
工具
hover
在某个位置获取TypeScript类型信息,以及它的定义位置。返回您在IDE中悬停时看到的相同信息——解析类型、推断类型、JSDoc——以及定义位置。
| 参数 | 类型 | 说明 |
|---|---|---|
file | string | TypeScript文件的绝对路径 |
line | number | 行号(0索引) |
character | number | 字符位置(0索引) |
diagnostics
获取文件的TypeScript错误和警告,以及可用的快速修复及其确切的文本编辑。
| 参数 | 类型 | 说明 |
|---|---|---|
file | string | TypeScript文件的绝对路径 |
references
查找整个项目中对符号的所有引用。
| 参数 | 类型 | 说明 |
|---|---|---|
file | string | TypeScript文件的绝对路径 |
line | number | 行号(0索引) |
character | number | 字符位置(0索引) |
outline
获取文件中所有符号(函数、类、接口、类型、变量)的结构化轮廓,包括行号和嵌套。
| 参数 | 类型 | 说明 |
|---|---|---|
file | string | TypeScript文件的绝对路径 |
rename
在整个项目中重命名符号。将编辑直接应用于所有受影响的文件。
| 参数 | 类型 | 说明 |
|---|---|---|
file | string | TypeScript文件的绝对路径 |
line | number | 行号(0索引) |
character | number | 字符位置(0索引) |
newName | string | 符号的新名称 |
inlay_hints
获取行范围的推断类型注释——变量类型、参数类型、TypeScript推断但不是用代码编写的返回类型。
| 参数 | 类型 | 说明 |
|---|---|---|
file | string | TypeScript文件的绝对路径 |
startLine | number | 起始行(0索引,含) |
endLine | number | 结束行(0索引,不包括) |
注: 需要tsgo inlay提示支持,该支持仍在开发中。当tsgo填充此功能时,该工具将开始返回结果。
配置
| 环境变量 | 描述 |
|---|---|
TSGO_PATH | 覆盖tsgo二进制文件的路径 |
许可证
麻省理工学院 - Zach Sents
