MCP File Preview Server
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
Clone the repository:
git clone https://github.com/your-username/mcp-file-preview.git
cd mcp-file-previewInstall dependencies:
npm installBuild the project:
npm run buildConfiguration
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
Install dependencies:
npm install @modelcontextprotocol/sdk puppeteer typescript @types/node @types/puppeteerMake changes in
src/Build:
npm run buildTest locally:
npm run devImplementation 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
Use the MCP Inspector:
npx @modelcontextprotocol/inspectorConnect with:
Transport Type: STDIO
Command: node
Arguments: /path/to/build/index.js
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/seanivore/mcp-file-preview'
If you have feedback or need assistance with the MCP directory API, please join our Discord server