关于 TypeScript Definition Finder MCP Server
TypeScript Definition Finder MCP Server 帮助 AI 代码编辑器定位代码库中 TypeScript 符号的原始定义。它返回定义位置和代码片段,也支持来自外部包的导入符号。
主要功能
- 01查找 TypeScript 符号定义
- 02支持外部包导入符号
- 03返回定义位置和代码片段
- 04通过 stdio 接入 AI 代码编辑器
适用场景
- 01追踪导入类或函数的定义
- 02定位接口或类的原始声明
- 03在 Cursor 中强制查找符号定义
MCP 相关
该 MCP 服务通过 stdio 向 AI 代码编辑器提供 `find_typescript_definition` 工具,用于定位符号定义并返回相关代码片段。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
TypeScript 定义查找器 MCP 服务
一个模型上下文协议(MCP)服务,可帮助 AI 代码编辑器在代码库中查找 TypeScript 符号定义。当你需要在 TypeScript 项目中定位导入符号、类、接口或函数的原始定义时,这个工具特别有用。
功能
- 查找 TypeScript 符号的原始定义
- 支持查找外部包中的导入符号
- 返回定义位置和代码片段
- 支持 stdio 接口,可与 AI 代码编辑器无缝集成
前置条件
- Bun v1.2.2 或更高版本
- 用于运行编译后服务的 Node.js
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 TypeScript Definition Finder:
npx -y @smithery/cli install @runninghare/ts-def-mcp --client claude
手动安装
- 安装依赖:
bun install
- 构建项目:
bun run build
使用方法
启动 stdio 服务:
node dist/run.js
工具说明
该服务提供一个 find_typescript_definition 工具,具备以下功能:
- 工具名称:
find_typescript_definition - 触发命令:
/ts-def(如果你想强制 AI 编辑器查找引用符号的定义,此命令在Cursor中很有用) - 用途:在代码库中定位 TypeScript 符号的原始定义
输入参数
该工具需要三个参数:
-
file_path(字符串):- 当前 TypeScript 文件的绝对路径
- 示例:
/path/to/your/project/src/index.ts
-
line_content(字符串):- 包含要查找其定义的符号的完整行
- 用于在文件中定位正确的行
- 必须与文件中的该行完全一致
-
column_number(数字):- 符号起始位置的列号,从 1 开始计数
- 必须是符号第一个字符所在的准确列位置
示例
- 查找导入符号的定义
给定以下导入语句:
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
要查找从第 10 列开始的 StdioServerTransport 的定义,可以这样使用:
{
"file_path": "~/my-mcp-project/src/index.ts",
"line_content": "import { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";",
"column_number": 10
}
该工具的输出如下:
[
{
"file": "~/my-mcp-project/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts",
"type": "Definition",
"location": "Line 9, Column 22",
"codeSnippet": " 8 */\n 9 > export declare class StdioServerTransport implements Transport {\n 10 + private _stdin;\n 11 + private _stdout;\n 12 + private _readBuffer;\n 13 + private _started;\n 14 + constructor(_stdin?: Readable, _stdout?: Writable);\n 15 + onclose?: () => void;\n 16 + onerror?: (error: Error) => void;\n 17 + onmessage?: (message: JSONRPCMessage) => void;\n 18 + _ondata: (chunk: Buffer) => void;\n 19 + _onerror: (error: Error) => void;\n 20 + /**\n 21 + * Starts listening for messages on stdin.\n 22 + */\n 23 + start(): Promise<void>;\n 24 + private processReadBuffer;\n 25 + close(): Promise<void>;\n 26 + send(message: JSONRPCMessage): Promise<void>;\n 27 }\n"
}
]
- 查找本地符号的定义
对于本地类的用法:
class MyService {
private transport: StdioServerTransport;
}
要查找从第 20 列开始的 StdioServerTransport 的定义,请使用:
{
"file_path": "/path/to/project/src/service.ts",
"line_content": " private transport: StdioServerTransport;",
"column_number": 20
}
响应格式
该工具会返回一个 JSON 响应,其中包含:
- 找到定义的文件路径
- 定义所在的行号
- 定义的实际代码片段
Claude Desktop 示例
开发
本项目使用 bun v1.2.2 中的 bun init 创建。Bun 是一款快速的一体化 JavaScript 运行时。
在开发模式下运行
开发时,你可以使用 Bun 直接运行服务:
bun run index.ts
许可证
[在此处添加许可证信息]
贡献
[在此处添加贡献指南]
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。