4D文档查看器

一个VS Code扩展和MCP服务器,用于浏览4D命令文档,提供智能命令检测和两种显示模式。

  • by mesopelagique
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mesopelagique/mcp-4d-docs

使用说明

4D文档查看器

用于浏览4D命令文档的VS代码扩展和MCP(模型上下文协议)服务器。

概述

该项目提供 双向 要访问4D命令文档:

  1. VS代码扩展:通过智能命令检测直接在VS Code中浏览文档
  2. MCP服务器:与Claude等AI助手一起用作模型上下文协议服务器

这两种模式共享相同的缓存系统,以提高性能。

特性

VS代码扩展功能

  • 智能命令检测:自动检测来自以下来源的4D命令:
    • 选中文本
    • 光标位置的单词
    • LSP/悬停信息
    • 剥离命令编号(例如。, :C123 格式)获取命令名时
  • 两种显示模式:
    • 在浏览器中打开(快速外部参考)
    • 在编辑器webview中打开(具有CSS样式的集成文档)
  • 上下文菜单集成:右键单击命令可快速访问
  • 自动缓存:更快的后续查找

MCP服务器功能

  • 获取4D命令文档:检索任何4D命令的HTML文档
  • 智能缓存:自动将文档缓存在特定于操作系统的缓存目录中
  • 缓存管理:需要获取新文档时清除缓存
  • 浏览器集成:直接在默认浏览器中打开文档URL

安装

作为VS代码扩展

  1. 构建扩展:
npm install
npm run build
  1. 本地安装:
    • 按 F5 在新的VS Code窗口中运行扩展(用于开发)
    • 或者打包并安装:
npm run package
code --install-extension mcp-4d-docs-0.1.0.vsix

作为MCP服务器

# Clone or navigate to the project
cd mcp-4d-docs

# Install dependencies
npm install

# Build the TypeScript code
npm run build

用法

使用VS代码扩展

  1. 打开4D代码文件(或任何文件)
  2. 选择4D命令名称或将光标放在其上
  3. 使用以下方法之一:
    • 命令面板 (Cmd+Shift+P):
      • 4D: Open Command Documentation in Browser
      • 4D: Open Command Documentation in Editor
    • 右键单击上下文菜单:
      • 选择命令文本,右键单击,选择选项
    • 键盘快捷键:(可以在VS Code中配置)

如果没有检测到命令,系统将提示您手动输入一个。

用作MCP服务器

添加到您的MCP客户端配置中(例如,Claude Desktop):

{
  "mcpServers": {
    "4d-docs": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]
    }
  }
}

对于VS代码,添加到 .vscode/mcp.json:

{
  "mcpServers": {
    "4d-docs": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]
    }
  }
}

可用的MCP工具

get_4d_command_docs

获取4D命令的文档。

参数:

  • command_name (string):4D命令的名称(例如,“活动快照”、“列表排列”)

退货:

  • 从中提取的HTML文档内容 <article> 标签内 <main> 章节

例子:

// Fetches from https://developer.4d.com/docs/commands/activity-snapshot
get_4d_command_docs("ACTIVITY SNAPSHOT")

clear4d_docs_cache

清除所有缓存的文档文件。

退货:

  • 指示已清除文件数的消息

open4d_command_in_browser

在默认web浏览器中打开4D命令文档页面。

参数:

  • command_name (string):4D命令的名称(例如,“活动快照”、“列表排列”)

退货:

  • 确认URL已打开的消息

例子:

// Opens https://developer.4d.com/docs/commands/activity-snapshot in your browser
open_4d_command_in_browser("ACTIVITY SNAPSHOT")

运作原理

  1. 命令检测 (VS代码扩展):

    • 首先检查所选文本
    • 回退到光标位置的单词
    • 在可用时使用LSP悬停信息
    • 如果需要,提示手动输入
  2. URL译码:命令名称转换为小写,空格替换为连字符

    • 示例:“活动快照”→ “活动快照”
  3. 文档获取:服务器从以下位置请求文档:

    • https://developer.4d.com/docs/commands/<encoded-command-name>
  4. HTML提取:服务器解析HTML并提取 <article> 节点内部 <main> 标签

  5. 链接重写:相对 /docs/ 链接转换为绝对URL

  6. 缓存:结果缓存在操作系统缓存目录中:

    • macOS: ~/Library/Caches/mcp-4d-docs/
    • 视窗: %LOCALAPPDATA%\mcp-4d-docs\
    • Linux: ~/.cache/mcp-4d-docs/
  7. 缓存键:每个命令都使用其名称的MD5哈希作为文件名进行缓存

  8. 显示 (VS代码扩展):

    • 浏览器模式:直接打开URL
    • Webview模式:显示具有4D CSS样式和VS Code主题集成的缓存HTML

发展

项目结构

mcp-4d-docs/
├── src/
│   ├── index.ts              # MCP server implementation
│   ├── extension.ts          # VS Code extension entry point
│   ├── docService.ts         # Shared documentation service
│   ├── commandDetector.ts    # Command name detection logic
│   └── webviewProvider.ts    # Webview panel management
├── build/                    # Compiled JavaScript output
├── logo.png                  # Extension icon
├── package.json             # Project metadata & VS Code extension config
├── tsconfig.json            # TypeScript configuration
├── .vscodeignore            # Files excluded from extension package
└── README.md

建筑

# Install dependencies
npm install

# Build TypeScript
npm run build

# Watch mode for development
npm run watch

# Package extension
npm run package

测试扩展

按 F5 在VS Code中启动加载了扩展的扩展开发主机。

测试MCP服务器

# Use MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js

依赖项

  • @modelcontextprotocol/sdk -模型上下文协议SDK
  • cheerio -HTML解析
  • @types/vscode -VS代码API类型
  • @vscode/vsce -VS代码扩展打包

配置

扩展设置

该扩展可以开箱即用,无需配置。它将:

  • 打开4D文件时激活(onLanguage:4d)
  • 可通过命令选项板用于任何文件类型
  • 将文档缓存在系统缓存目录中

自定义密钥绑定

您可以在VS Code中添加自定义键盘快捷键:

{
  "key": "cmd+k cmd+d",
  "command": "4d-docs.openInWebview",
  "when": "editorTextFocus"
},
{
  "key": "cmd+k cmd+b",
  "command": "4d-docs.openInBrowser",
  "when": "editorTextFocus"
}

出版

个人使用

该扩展已准备好在本地使用。在构建和包装之后:

npm run package
code --install-extension mcp-4d-docs-0.1.0.vsix

用于分销

在发布到VS代码市场之前:

  1. 更新发布者名称 在 package.json:

    "publisher": "your-actual-publisher-id"
    
  2. 添加存储库URL 在 package.json:

    "repository": {
      "type": "git",
      "url": "https://github.com/yourusername/mcp-4d-docs.git"
    }
    
  3. 添加许可证文件 (例如,带有MIT许可证文本的LICENSE.txt)

  4. 发布到市场:

    vsce publish
    

    或者创建VSIX以进行共享:

    npm run package
    # Share the .vsix file
    

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交问题或拉取请求。

  • []如果远程CSS不存在(例如,如果它被重命名),请考虑在插件中嵌入一个。
  • []支持4D语言高亮显示(Prism?)。
  • []通过命令面板请求文档时,请按住一个键,以允许强制下载(即绕过缓存)。