File Preview

by seanivore

Recommended
10 stars
147 downloads
Not rated
GitHub

About

Preview local HTML files and capture screenshots, saving them to a local directory.

Details

Author
seanivore
Repository
seanivore/mcp-file-preview
GitHub stars
10
Downloads
147
License
MIT License
Categories
File Management, Automation, Developer Tools

- File Preview: Capture full-page screenshots of HTML files with proper CSS styling
- Content Analysis: Analyze HTML structure (headings, paragraphs, images, links)
- Local File Support: Handle local file paths and resources
- Screenshot Management: Save screenshots to a dedicated directory

Setting up with Highlight

Follow these steps to add this server as a custom Highlight plugin:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name File Preview
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 /path/to/mcp-file-preview/build/index.js

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

The server provides two main tools:

preview_file

Captures a screenshot and returns HTML content. Parameters: filePath (string), width (optional integer), height (optional integer)

analyze_content

Analyzes HTML structure. Parameters: filePath (string)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "file preview": {
            "cwd": "string",
            "env": {},
            "args": [
                "/path/to/mcp-file-preview/build/index.js"
            ],
            "shell": false,
            "command": "node"
        }
    }
}

Linux

{
    "cwd": "string",
    "env": [],
    "args": [
        "/path/to/mcp-file-preview/build/index.js"
    ],
    "shell": false,
    "command": "node"
}

Macos

{
    "cwd": "string",
    "env": [],
    "args": [
        "/path/to/mcp-file-preview/build/index.js"
    ],
    "shell": false,
    "command": "node"
}

Windows

{
    "cwd": "string",
    "env": [],
    "args": [
        "/path/to/mcp-file-preview/build/index.js"
    ],
    "shell": false,
    "command": "node"
}

MCP File Preview Server

A Model Context Protocol (MCP) server that provides HTML file preview and analysis capabilities. This server enables capturing full-page screenshots of local HTML files and analyzing their structure.

Features

- File Preview: Capture full-page screenshots of HTML files with proper CSS styling
- Content Analysis: Analyze HTML structure (headings, paragraphs, images, links)
- Local File Support: Handle local file paths and resources
- Screenshot Management: Save screenshots to a dedicated directory

Installation

1. Clone the repository:

git clone https://github.com/your-username/mcp-file-preview.git
cd mcp-file-preview

2. Install dependencies:

npm install

3. Build the project:

npm run build

Configuration

Add the server to your Claude or Cline MCP settings:

Claude Desktop App

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
  "mcpServers": {
    "file-preview": {
      "command": "node",
      "args": ["/path/to/mcp-file-preview/build/index.js"]
    }
  }
}

Cline VSCode Extension

Add to VSCode's MCP settings:
{
  "mcpServers": {
    "file-preview": {
      "command": "node",
      "args": ["/path/to/mcp-file-preview/build/index.js"]
    }
  }
}

Usage

The server provides two main tools:

preview_file

Captures a screenshot and returns HTML content:
<use_mcp_tool>
<server_name>file-preview</server_name>
<tool_name>preview_file</tool_name>
<arguments>
{
  "filePath": "/path/to/file.html",
  "width": 1024,  // optional
  "height": 768   // optional
}
</arguments>
</use_mcp_tool>

Screenshots are saved to screenshots/ directory in the project folder.

analyze_content

Analyzes HTML structure:
<use_mcp_tool>
<server_name>file-preview</server_name>
<tool_name>analyze_content</tool_name>
<arguments>
{
  "filePath": "/path/to/file.html"
}
</arguments>
</use_mcp_tool>

Returns counts of:
- Headings
- Paragraphs
- Images
- Links

Development

1. Install dependencies:

npm install @modelcontextprotocol/sdk puppeteer typescript @types/node @types/puppeteer

2. Make changes in src/
3. Build:

npm run build

4. Test locally:
npm run dev

Implementation Details

The server uses the MCP SDK's Server class with proper initialization:

this.server = new Server(
  // Metadata object
  {
    name: 'file-preview-server',
    version: '0.1.0'
  },
  // Options object with capabilities
  {
    capabilities: {
      tools: {
        preview_file: {
          description: 'Preview local HTML file and capture screenshot',
          inputSchema: {
            // ... schema definition
          }
        }
      }
    }
  }
);

Key points:
- Server constructor takes separate metadata and options objects
- Tools are declared in capabilities.tools
- Each tool needs a description and inputSchema
- Screenshots are saved to a local screenshots/ directory

Debugging

1. Use the MCP Inspector:

npx @modelcontextprotocol/inspector

2. Connect with:
- Transport Type: STDIO
- Command: node
- Arguments: /path/to/build/index.js

3. Check Claude OS logs if tools don't appear in the dropdown

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.