Integrated MCP Server

MCP Tools Documentation

A VSCode/Cursor extension that provides an integrated MCP server and UI panel for retrieving and displaying command-line tool documentation. The extension automatically detects tools in your workspace and provides their documentation through a WebView panel.

Core Features

  • šŸ”„ Built-in MCP Server
    • Express + SSE server (ports 54321-54421)
    • Secure origin validation
    • Automatic port selection
    • Connection management and cleanup
    • Real-time event streaming
  • šŸ” Tool Discovery
    • Package scripts (npm, yarn, pnpm)
    • Local binaries (node_modules/.bin)
    • Global tools (git, npm, yarn, pnpm)
    • Monorepo workspace support
  • šŸ“š Documentation Retrieval
    • Help command execution (-h, --help)
    • Version information fetching
    • Secure command validation
    • Error handling
  • šŸ’» VS Code Integration
    • React-based WebView panel
    • Status bar integration
    • Command palette support
    • Workspace path detection

Architecture

1. VS Code Extension (Backend)

Extension Host (src/extension.ts) ā”œā”€ā”€ Activates when VS Code starts ā”œā”€ā”€ Creates MCP Server ā”‚ ā””ā”€ā”€ Express + SSE Server (54321-54421 port range) ā””ā”€ā”€ Creates WebView Panel

2. MCP Server (Middle Layer)

MCP Server (src/server/*) ā”œā”€ā”€ SSE Event Stream ā”‚ ā”œā”€ā”€ Real-time tool discovery updates ā”‚ ā”œā”€ā”€ Documentation streaming ā”‚ ā””ā”€ā”€ Connection state management ā”‚ ā””ā”€ā”€ Tool Discovery System ā”œā”€ā”€ path-scanner.ts ā”‚ ā””ā”€ā”€ Finds tools in workspace (bin/, node_modules/.bin) ā””ā”€ā”€ package-scanner.ts ā””ā”€ā”€ Scans package.json for available tools

3. WebView Panel (Frontend)

React WebView (src/panel/*) ā”œā”€ā”€ UI Components ā”‚ ā””ā”€ā”€ Shows available tools and their docs ā”‚ ā””ā”€ā”€ SSE Client ā”œā”€ā”€ Requests available tools ā””ā”€ā”€ Streams tool documentation

Project Structure

my-tools-mcp/ ā”œā”€ā”€ src/ # Source code ā”‚ ā”œā”€ā”€ extension.ts # Extension entry point ā”‚ ā”œā”€ā”€ env.ts # Environment configuration ā”‚ ā”œā”€ā”€ server/ # Built-in MCP server ā”‚ ā”‚ ā”œā”€ā”€ index.ts # Server setup and SSE handling ā”‚ ā”‚ ā””ā”€ā”€ controllers/ # Tool discovery and execution ā”‚ ā”‚ ā”œā”€ā”€ docs/ # Documentation controllers ā”‚ ā”‚ ā”œā”€ā”€ path-scanner.ts # Tool discovery ā”‚ ā”‚ ā””ā”€ā”€ package-scanner.ts # Package.json scanning ā”‚ ā”œā”€ā”€ panel/ # WebView UI (React) ā”‚ ā”‚ ā”œā”€ā”€ index.tsx # WebView entry point ā”‚ ā”‚ ā”œā”€ā”€ App.tsx # Main React component ā”‚ ā”‚ ā””ā”€ā”€ components/ # UI components ā”‚ ā”œā”€ā”€ types/ # Shared TypeScript types ā”‚ ā””ā”€ā”€ lib/ # Shared utilities ā”œā”€ā”€ dist/ # Compiled output ā””ā”€ā”€ src/__tests__/ # Test files

Development Setup

  1. Install dependencies:
pnpm install
  1. Start development:
# Start webpack in watch mode pnpm run dev # Or build for production pnpm run build
  1. Launch the extension:
  • Press F5 in VSCode to start debugging
  • The extension will start both the MCP server and WebView panel

Usage

  1. Open the command palette (Cmd/Ctrl + Shift + P)
  2. Type "MCP Tools" and select the command
  3. The WebView panel will open and display available tools
  4. Select a tool to view its documentation

Technical Details

Tool Discovery

  • Package Scripts
    • Automatically detects npm/yarn/pnpm scripts
    • Shows script source and working directory
    • Supports monorepo workspaces
    • Validates script existence
  • Binary Tools
    • Finds tools in node_modules/.bin
    • Detects global tools (git, npm, yarn, pnpm)
    • Validates tool existence and permissions
    • Handles path resolution

Documentation Retrieval

  • Executes help commands (-h, --help)
  • Fetches version information
  • Handles command execution errors
  • Validates tool names and arguments
  • Implements proper timeouts

SSE Communication

  • Real-time tool discovery updates
  • Secure origin validation
  • Connection management and cleanup
  • Error handling and reporting
  • Automatic reconnection support
  • Event-based streaming
  • Bi-directional message passing

Security Features

  • Tool name validation
  • Command injection prevention
  • Origin validation for SSE connections
  • Proper error handling and reporting
  • Resource cleanup
  • Connection state management

Testing

The extension includes comprehensive tests:

  • Integration tests for server functionality
  • VS Code extension tests
  • Tool discovery tests
  • Security validation tests
  • SSE communication tests

License

ISC

-
security - not tested
F
license - not found
-
quality - not tested

Facilitates real-time tool discovery and documentation retrieval for command-line tools within a VSCode extension, using Express and SSE for secure and dynamic content streaming.

  1. Core Features
    1. Architecture
      1. 1. VS Code Extension (Backend)
        1. 2. MCP Server (Middle Layer)
          1. 3. WebView Panel (Frontend)
          2. Project Structure
            1. Development Setup
              1. Usage
                1. Technical Details
                  1. Tool Discovery
                    1. Documentation Retrieval
                      1. SSE Communication
                        1. Security Features
                        2. Testing
                          1. License