Browse 4D command documentation with integrated caching.
4D Documentation Viewer
A VS Code extension and MCP (Model Context Protocol) server for browsing 4D command documentation.
Overview
This project provides two ways to access 4D command documentation:
- VS Code Extension: Browse documentation directly in VS Code with intelligent command detection
- MCP Server: Use as a Model Context Protocol server with AI assistants like Claude
Both modes share the same caching system for improved performance.
Features
VS Code Extension Features
- Smart Command Detection: Automatically detects 4D commands from:
- Selected text
- Word at cursor position
- LSP/hover information
- Strips command numbers (e.g.,
:C123format) when getting command name
- Two Display Modes:
- Open in browser (quick external reference)
- Open in editor webview (integrated documentation with CSS styling)
- Context Menu Integration: Right-click commands for quick access
- Automatic Caching: Faster subsequent lookups
MCP Server Features
- Fetch 4D Command Documentation: Retrieve HTML documentation for any 4D command
- Smart Caching: Automatically caches documentation in OS-specific cache directories
- Cache Management: Clear the cache when needed to fetch fresh documentation
- Browser Integration: Open documentation URLs directly in default browser
Installation
As a VS Code Extension
- Build the extension:
npm install
npm run build
- Install locally:
- Press
F5to run the extension in a new VS Code window (for development) - Or package and install:
- Press
npm run package
code --install-extension mcp-4d-docs-0.1.0.vsix
As an MCP Server
# Clone or navigate to the project
cd mcp-4d-docs
# Install dependencies
npm install
# Build the TypeScript code
npm run build
Usage
Using the VS Code Extension
- Open a 4D code file (or any file)
- Select a 4D command name or place cursor on it
- Use one of these methods:
- Command Palette (
Cmd+Shift+P):4D: Open Command Documentation in Browser4D: Open Command Documentation in Editor
- Right-click Context Menu:
- Select command text, right-click, choose option
- Keyboard Shortcut: (can be configured in VS Code)
- Command Palette (
If no command is detected, you'll be prompted to enter one manually.
Using as MCP Server
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"4d-docs": {
"command": "node",
"args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]
}
}
}
For VS Code, add to .vscode/mcp.json:
{
"mcpServers": {
"4d-docs": {
"command": "node",
"args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]
}
}
}
Available MCP Tools
get_4d_command_docs
Fetches documentation for a 4D command.
Parameters:
command_name(string): The name of the 4D command (e.g., "ACTIVITY SNAPSHOT", "ARRAY TO LIST")
Returns:
- HTML documentation content extracted from the
<article>tag within the<main>section
Example:
// Fetches from https://developer.4d.com/docs/commands/activity-snapshot
get_4d_command_docs("ACTIVITY SNAPSHOT")
clear_4d_docs_cache
Clears all cached documentation files.
Returns:
- A message indicating the number of files cleared
open_4d_command_in_browser
Opens a 4D command documentation page in the default web browser.
Parameters:
command_name(string): The name of the 4D command (e.g., "ACTIVITY SNAPSHOT", "ARRAY TO LIST")
Returns:
- A message confirming the URL was opened
Example:
// Opens https://developer.4d.com/docs/commands/activity-snapshot in your browser
open_4d_command_in_browser("ACTIVITY SNAPSHOT")
How It Works
Command Detection (VS Code Extension):
- Checks for selected text first
- Falls back to word at cursor position
- Uses LSP hover information when available
- Prompts for manual entry if needed
URL Encoding: Command names are converted to lowercase and spaces are replaced with hyphens
- Example: "ACTIVITY SNAPSHOT" → "activity-snapshot"
Documentation Fetching: The server requests documentation from:
https://developer.4d.com/docs/commands/<encoded-command-name>
HTML Extraction: The server parses the HTML and extracts the
<article>node from within the<main>tagLink Rewriting: Relative
/docs/links are converted to absolute URLsCaching: Results are cached in the OS system cache directory:
- macOS:
~/Library/Caches/mcp-4d-docs/ - Windows:
%LOCALAPPDATA%\mcp-4d-docs\ - Linux:
~/.cache/mcp-4d-docs/
- macOS:
Cache Key: Each command is cached using an MD5 hash of its name as the filename
Display (VS Code Extension):
- Browser mode: Opens URL directly
- Webview mode: Displays cached HTML with 4D CSS styling and VS Code theme integration
Developm
Tools (3)
get_4d_command_docsFetches documentation for a 4D command.clear_4d_docs_cacheClears all cached documentation files.open_4d_command_in_browserOpens a 4D command documentation page in the default web browser.Configuration
{"mcpServers": {"4d-docs": {"command": "node", "args": ["/absolute/path/to/mcp-4d-docs/build/index.js"]}}}