mcpField
T
TypeScript Definition Finder MCP Server

TypeScript Definition Finder MCP Server

本地服务
github.com/runninghare开发工具084 周前更新

关于 TypeScript Definition Finder MCP Server

TypeScript Definition Finder MCP Server 帮助 AI 代码编辑器定位代码库中 TypeScript 符号的原始定义。它返回定义位置和代码片段,也支持来自外部包的导入符号。

主要功能

  1. 01查找 TypeScript 符号定义
  2. 02支持外部包导入符号
  3. 03返回定义位置和代码片段
  4. 04通过 stdio 接入 AI 代码编辑器

适用场景

  1. 01追踪导入类或函数的定义
  2. 02定位接口或类的原始声明
  3. 03在 Cursor 中强制查找符号定义

MCP 相关

该 MCP 服务通过 stdio 向 AI 代码编辑器提供 `find_typescript_definition` 工具,用于定位符号定义并返回相关代码片段。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ts-def": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

TypeScript 定义查找器 MCP 服务

smithery badge

一个模型上下文协议(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
手动安装
  1. 安装依赖:
bun install
  1. 构建项目:
bun run build

使用方法

启动 stdio 服务:

node dist/run.js
工具说明

该服务提供一个 find_typescript_definition 工具,具备以下功能:

  • 工具名称:find_typescript_definition
  • 触发命令:/ts-def(如果你想强制 AI 编辑器查找引用符号的定义,此命令在 Cursor 中很有用)
  • 用途:在代码库中定位 TypeScript 符号的原始定义
输入参数

该工具需要三个参数:

  1. file_path(字符串):

    • 当前 TypeScript 文件的绝对路径
    • 示例:/path/to/your/project/src/index.ts
  2. line_content(字符串):

    • 包含要查找其定义的符号的完整行
    • 用于在文件中定位正确的行
    • 必须与文件中的该行完全一致
  3. column_number(数字):

    • 符号起始位置的列号,从 1 开始计数
    • 必须是符号第一个字符所在的准确列位置
示例
  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"
  }
]
  1. 查找本地符号的定义

对于本地类的用法:

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 示例
2025-03-16_19-15-46

开发

本项目使用 bun v1.2.2 中的 bun init 创建。Bun 是一款快速的一体化 JavaScript 运行时。

在开发模式下运行

开发时,你可以使用 Bun 直接运行服务:

bun run index.ts

许可证

[在此处添加许可证信息]

贡献

[在此处添加贡献指南]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。