htmltolink-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@htmltolink-mcpdeploy this project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
htmltolink-mcp
Deploy any HTML project to a live public URL in seconds — directly from Cursor, Claude Code, or any MCP-compatible AI agent.
No server. No config. No build pipeline. Just one command and you get a shareable link.
Quick Start
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"htmltolink": {
"command": "npx",
"args": ["-y", "htmltolink-mcp"]
}
}
}Then just tell Cursor: "Deploy this project" — it will package your files, upload them, and return a live URL.
Claude Code
Add to .mcp.json in your project root:
{
"mcpServers": {
"htmltolink": {
"command": "npx",
"args": ["-y", "htmltolink-mcp"]
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"htmltolink": {
"command": "npx",
"args": ["-y", "htmltolink-mcp"]
}
}
}Related MCP server: deloc-mcp
Available Tools
Tool | Description |
| Package and deploy a project directory to htmlto.link |
| Check existing deployment info from |
Authentication (Optional)
By default, deployments are anonymous and temporary (24 hours). The agent automatically saves update credentials so it can refresh the same link.
For persistent managed pages, set your API token:
{
"mcpServers": {
"htmltolink": {
"command": "npx",
"args": ["-y", "htmltolink-mcp"],
"env": {
"HTML_TO_LINK_TOKEN": "your-api-token"
}
}
}
}Get your token from htmlto.link/settings.
How It Works
Agent calls the
deploytool with your project directoryMCP server zips the project (excluding
node_modules,.git, secrets, etc.)Uploads to
https://htmlto.link/api/skill/deploySaves deployment info to
.htmltolink.json(auto-added to.gitignore)Returns the live public URL
Use Cases
🚀 AI-generated pages: Cursor/Claude builds a landing page → instant live URL
📋 Client demos: Share a prototype link in seconds
🧪 Quick previews: Test responsive design on real devices
📦 Portfolio pieces: Host experiments without setting up hosting
Using .cursorrules (Alternative)
If you prefer prompt-based integration over MCP, copy the .cursorrules file from this repo into your project root. The agent will follow the instructions to deploy via the HTTP API directly.
Links
Website: https://htmlto.link
Skill Guide: https://htmlto.link/skill
API Docs:
POST https://htmlto.link/api/skill/deploy
License
MIT
Available Tools
2 toolsdeployA
Deploy the current project to htmlto.link and get a live public URL. Packages the project as ZIP, uploads it, and returns a shareable link. Supports --next mode for automatic Next.js static export.
| Name | Required | Description | Default |
|---|---|---|---|
| next | No | If true, auto-detect Next.js project, run static export build, and deploy the out/ directory | |
| title | No | Title for the deployed page (defaults to folder name) | |
| entry_file | No | The entry HTML file (relative to project root) | index.html |
| project_dir | Yes | Absolute path to the project directory to deploy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the deployment process: packages the project as ZIP, uploads it, and returns a shareable link. It also describes the --next mode behavior (auto-detects Next.js, runs static export, deploys out/). However, it does not mention authentication requirements, possible side effects like overwriting existing deployments, or rate limits, which are relevant for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a second sentence for important process details. There is zero fluff, and every piece of information is relevant and necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description appropriately states that it returns a shareable link. It covers the deployment flow, the --next mode, and all parameters are documented in the input schema. It lacks some edge-case information like error handling or whether the URL is stable across deployments, but overall it is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with detailed descriptions for all four parameters. The description itself does not add any parameter-specific semantics beyond what the schema already provides; it only mentions 'next' mode in general terms, which is already captured in the schema for the 'next' property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Deploy the current project to htmlto.link and get a live public URL.' It also describes the process (packages ZIP, uploads, returns link) and distinguishes itself from the sibling 'status' by focusing on the deployment action rather than checking status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear when to use this tool: when you want to deploy a project and receive a live URL. It does not explicitly mention when not to use it or list alternatives, but its context is unambiguous compared to the only sibling 'status'. The mention of '--next mode' provides additional guidance for Next.js projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusA
Check the deployment status of the current project by reading .htmltolink.json
| Name | Required | Description | Default |
|---|---|---|---|
| project_dir | Yes | Absolute path to the project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool reads a file (.htmltolink.json), implying a read-only operation. However, it does not specify permissions, error behavior if the file is missing, or return format. The phrase 'current project' is ambiguous relative to the required project_dir parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, front-loading the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks annotations and an output schema, and the description does not explain the return value shape or error conditions. The ambiguity between 'current project' and the required project_dir parameter could mislead an agent. While the tool is simple, critical details for invocation are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes project_dir. The description adds context by indicating that project_dir is used to locate .htmltolink.json, giving the parameter operational meaning beyond its type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (Check), the target (deployment status), and the method (by reading .htmltolink.json). This distinguishes it from the sibling 'deploy' which is a mutation action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for verifying deployment state, which is a distinct context from the sibling 'deploy'. However, it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
deploy - First observed
status
TDQS
The two tools are unmistakably distinct: 'deploy' triggers a deployment, while 'status' reads the deployment status. There is no overlap in their purposes or outcomes.
Both names are concise, lowercase, and single-word, following a predictable command-style pattern. However, 'status' is a noun while 'deploy' is a verb, representing a minor inconsistency in part of speech.
With only two tools, the server is minimal but well-aligned to its narrow purpose. It is slightly under the typical range, yet both tools are essential and justify their existence.
The core deployment workflow is covered: deploying and checking status. A setup or initialization tool could be useful, but the current surface does not present critical gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Publish AI-generated HTML to a live page on your own domain — from Claude, ChatGPT, or Cursor.
Deploy AI-generated HTML/CSS/JS to instant public HTTPS URLs from any MCP-compatible agent.
Host AI-generated HTML/CSS/JS instantly. Files, zips, or clone an existing page. Live in seconds.
Publish AI-generated HTML to a private, unguessable link, straight from Claude or ChatGPT.
Related MCP Servers
- AlicenseAqualityCmaintenancePublish live web pages from AI coding agents. Instant shareable URLs for dashboards, landing pages, and reports with password protection.41MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Deloc — deploy static sites from AI coding agents. Say "deploy this to Deloc" in Claude Code or Cursor and get a live URL back without leaving your editor.4MIT
- AlicenseAqualityFmaintenanceDeploy static HTML folders to permanent vibie.page URLs from Claude, Cursor, or any MCP client. One-line auto-install wires up the config, OAuth device-flow handles auth, and a folder marker lets repeat deploys skip the slug.4781MIT
- AlicenseNot gradedqualityDmaintenancePublishes HTML pages straight from your AI assistant to a shareable URL, then lets you manage them - update, list, search, fetch, and delete pages in a public or private workspace. Turns "share what I just made" into a single tool call from Claude, Cursor, or any MCP client.MIT
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/licc168/htmltolink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server