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.
- 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
- Clone the repository:
git clone https://github.com/your-username/mcp-file-preview.git
cd mcp-file-preview- Install dependencies:
npm install- Build the project:
npm run buildAdd the server to your Claude or Cline MCP settings:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"file-preview": {
"command": "node",
"args": ["/path/to/mcp-file-preview/build/index.js"]
}
}
}Add to VSCode's MCP settings:
{
"mcpServers": {
"file-preview": {
"command": "node",
"args": ["/path/to/mcp-file-preview/build/index.js"]
}
}
}The server provides two main tools:
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.
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
- Install dependencies:
npm install @modelcontextprotocol/sdk puppeteer typescript @types/node @types/puppeteer- Make changes in
src/ - Build:
npm run build- Test locally:
npm run devThe 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
- Use the MCP Inspector:
npx @modelcontextprotocol/inspector-
Connect with:
- Transport Type: STDIO
- Command: node
- Arguments: /path/to/build/index.js
-
Check Claude OS logs if tools don't appear in the dropdown
Please read
This project is licensed under the MIT License - see the