MCP-Typescribe

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables loading and indexing of TypeDoc-generated JSON documentation for Node.js projects, allowing LLMs to efficiently explore and understand Node.js APIs through various query endpoints.

  • Parses TypeScript definitions into a machine-readable format, providing comprehensive query capabilities including symbol search, detailed type information, and relationship exploration for TypeScript APIs.

MCP-Typescribe - 提供 LLMs API 信息的 MCP 服务器

问题

大型语言模型 (LLM) 在代码生成和开发者生产力方面取得了令人难以置信的进步。然而,它们面临一个关键的限制:它们只能可靠地使用在训练过程中见过的 API 和库。这给采用新的工具、SDK 或内部 API 造成了瓶颈——LLM 根本不知道如何有效地使用它们。

虽然可以授予工具源代码访问权限(当与源代码可用的 API 交互时)或文档文件访问权限(例如 TypeScript 类型定义文件),但这对于大型 API 来说扩展性不佳。LLM 需要一种更有效的方法来深入了解 API。针对每个请求将所有文档都放在上下文中效率低下、不可行,并且会导致糟糕的结果。

因此:

更大的新的或内部的 API 对于 LLM 来说仍然是“不可见的”。

开发人员必须手动指导 LLM 或提供示例用法。

API 的发布与 AI 工具对其的广泛理解之间存在滞后,从而减缓了创新速度。

理念

该项目是模型上下文协议 (MCP) 的开源实现,该协议旨在为 LLM 提供上下文相关的实时信息访问。在本例中,MCP 指的是 API 文档,尤其是在本项目中,指的是 TypeScript 定义。

我们的目标是:

将 TypeScript(和其他)定义解析为机器可读的格式。

通过 Claude、Cline、Cursor 或 Windsurf 等工具以及其他自定义界面将此上下文动态地提供给 LLM。

通过让 LLM 查询、规划和适应不熟悉的 API(无需重新培训)来实现代理行为。

这项技术能够实现什么

为基于 LLM 的编码助手提供即插即用 API 支持。

更快地加入新的或专有的 SDK。

向更加自主、上下文感知的编码代理迈进了一步。

项目概述

该项目为 AI 代理提供了一种高效探索和理解未知 TypeScript API 的方法。它加载 TypeDoc 生成的 JSON 文档,并通过一组查询端点将其公开,这些端点允许代理搜索符号、获取 API 特定部分的详细信息,并理解不同组件之间的关系。

当前功能

  • TypeDoc 集成:加载并索引 TypeDoc JSON 文档以实现高效查询
  • 全面的查询功能:提供多种用于探索 TypeScript API 的工具
  • MCP 协议:遵循模型上下文协议,实现与 AI 代理的无缝集成

查询功能

服务器提供以下查询API的工具:

  • search_symbols :按名称查找符号,并可选择按种类进行过滤
  • get_symbol_details :获取有关特定符号的详细信息
  • list_members :列出类或接口的方法和属性
  • get_parameter_info :获取有关函数参数的信息
  • find_implementations :查找接口或子类的实现
  • search_by_return_type :查找返回特定类型的函数
  • search_by_description :在 JSDoc 注释中搜索
  • get_type_hierarchy :显示继承关系
  • find_usages :查找类型/函数的使用位置

入门

先决条件

  • Node.js
  • npm

安装

  1. 克隆存储库
  2. 安装依赖项:
    npm install

用法

  1. 为您的 TypeScript API 生成 TypeDoc JSON:
    npx typedoc --json docs/api.json --entryPointStrategy expand path/to/your/typescript/files
    如果您(仅)有一个现有的.d.ts文件,您可以像这样创建一个 api json 文件:创建一个单独的tsconfig.docs.json
    { "extends": "./tsconfig.json", "files": ["existing.d.ts"], "typedocOptions": { "entryPoints": ["existing.d.ts"], "json": "docs/api.json", "pretty": false } }
    然后做
    npx typedoc --tsconfig tsconfig.docs.json
  2. 构建项目:
    npm run build
  3. 探索 MCP 服务器:
    npx @modelcontextprotocol/inspector node ./dist/mcp-server/index.js run-server docs/api.json
  4. 将 AI 代理连接到服务器以查询 API例如,使用 VSCode 中的 cline,在cline_mcp_settings.json中指定以下 MCP 服务器:
    { "mcpServers": { "typescribe": { "command": "npx", "args": [ "-y", "mcp-typescribe@latest", "run-server", "<PATH_TO_API_DOT_JSON>" ], "env": {} } } }
  5. 启用服务器并自动批准各种工具。告诉代理使用“typescribe”工具来了解你的 API。

项目结构

  • src/sample-api/ :用于测试的 TypeScript API 示例 - 它使用一种奇怪的类似德语的方言作为 API 名称,以测试 LLM 不会对 API 产生幻觉
  • src/mcp-server/ :MCP 服务器实现
    • utils/ :实用函数
    • schemas/ :MCP 工具的 JSON 模式
    • core/ :核心功能
    • server.ts :MCP 服务器实现
    • index.ts :入口点
  • tests/ :测试 API 功能

发展

运行测试

npm test

建筑

npm run build

执照

麻省理工学院

版权所有 2025 yWorks GmbH - https://www.yworks.com

-
security - not tested
A
license - permissive license
-
quality - not tested

MCP 服务器通过提供对 TypeScript 类型定义和文档的结构化访问,使 LLM 能够理解和使用他们尚未接受过培训的 TypeScript API。

  1. The Problem
    1. As a result:
      1. The Idea
        1. Our goal is to:
          1. What This Enables
            1. Project Overview
              1. Current Features
                1. Query Capabilities
                  1. Getting Started
                    1. Prerequisites
                    2. Installation
                    3. Usage
                  2. Project Structure
                    1. Development
                      1. Running Tests
                      2. Building
                    2. License
                      ID: 8fjzcsyi8f