mcp file preview
Provides HTML file preview and analysis capabilities. This server enables capturing full-page screenshots of local HTML files and analyzing their structure.
Provides HTML file preview and analysis capabilities. This server enables capturing full-page screenshots of local HTML files and analyzing their structure.
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.
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 build
Add 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/
npm run build
npm run dev
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
Use the MCP Inspector:
npx @modelcontextprotocol/inspector
Connect with:
Arguments: /path/to/build/index.js
Check Claude OS logs if tools don't appear in the dropdown
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
[
{
"description": "Preview local HTML file and capture screenshot",
"inputSchema": {
"properties": {
"filePath": {
"description": "Path to local HTML file",
"type": "string"
},
"height": {
"default": 768,
"description": "Viewport height",
"type": "number"
},
"width": {
"default": 1024,
"description": "Viewport width",
"type": "number"
}
},
"required": [
"filePath"
],
"type": "object"
},
"name": "preview_file"
},
{
"description": "Analyze HTML content structure",
"inputSchema": {
"properties": {
"filePath": {
"description": "Path to local HTML file",
"type": "string"
}
},
"required": [
"filePath"
],
"type": "object"
},
"name": "analyze_content"
}
]