TypeScript定义查找器MCP服务器
](https://smithery.ai/server/@runninghare/ts-def-mcp)
一个模型上下文协议(MCP)服务器,帮助AI代码编辑器在代码库中找到TypeScript符号定义。当您需要在TypeScript项目中定位导入的符号、类、接口或函数的原始定义时,此工具特别有用。
特性
- 查找TypeScript符号的原始定义
- 使用从外部包导入的符号
- 返回定义位置和代码段
- 支持stdio接口,可与AI代码编辑器无缝集成
先决条件
- 包子 v1.2.2或更高版本
- Node.js用于运行编译后的服务器
安装
通过Smithery安装
通过以下方式自动安装克劳德桌面的TypeScript定义查找器 史密瑟里:
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(有用Cursor如果你想强制AI编辑器找到引用的符号定义) - 目的:在代码库中查找TypeScript符号的原始定义
输入参数
该工具需要三个参数:
file_path(字符串):
- 当前TypeScript文件的绝对路径 - 例子: /path/to/your/project/src/index.ts
line_content(字符串):
- 包含要查找的符号定义的整行 - 用于在文件中定位正确的行 - 必须与文件中显示的行完全匹配
column_number(编号):
- 符号开始处的从1开始的列号 - 必须是符号第一个字符的确切列位置
例子
- 查找导入的符号定义
鉴于此进口声明:
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";找到以下定义 StdioServerTransport,从第10列开始,您将使用:
{
"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;\n 24 + private processReadBuffer;\n 25 + close(): Promise;\n 26 + send(message: JSONRPCMessage): Promise;\n 27 }\n"
}
]- 查找本地符号定义
对于本地类用法:
class MyService {
private transport: StdioServerTransport;
}找到以下定义 StdioServerTransport,从第20列开始,使用:
{
"file_path": "/path/to/project/src/service.ts",
"line_content": " private transport: StdioServerTransport;",
"column_number": 20
}响应格式
该工具返回一个JSON响应,其中包含:
- 找到定义的文件路径
- 定义的行号
- 定义的实际代码片段
Claude桌面示例
发展
此项目是使用创建的 bun init 在bun v1.2.2中。 包子 是一个快速的一体化JavaScript运行时。
以开发模式运行
对于开发,您可以直接使用Bun运行服务器:
bun run index.ts许可证
\[在此处添加您的许可证信息\]
贡献
\[在此处添加贡献指南\]
