DropTheHassle
Domains, static hosting, DNS and email forwarding. Publish with your AI. It never spends money.
Should I use this
Quality & Safety
Findings (3)
- HIGH
- MEDIUMin award_readiness
- INFOin award_readiness
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"dropthehassle": {
"command": "npx",
"args": [
"dropthehassle-mcp"
]
}
}
}Runnable packages
0.4.2stdioRemote endpoints
https://dropthehassle.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
⚪whoami
Confirm the DropTheHassle account this AI is connected to. Call first to verify the connection works. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {}
}🟡list_sites
List the account's sites with their live URL, status and the domains pointing at each. Use to find a site_id to deploy to or point a name at. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {}
}🟢search_domain(name)
Check whether a domain name is available to register and what it would cost (EUR). Read-only: use it to propose a REAL free name. Buying is a human step in the dashboard; this never spends money. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The domain to check, e.g. \"myidea.com\"."
}
},
"required": [
"name"
]
}🟡deploy_site(files, site_id, slug)
Put a static site online on a free link. Pass files inline as {path, content, encoding} where encoding is utf8 or base64. This server cannot read a folder on your machine. The server chooses index.html, dist/, build/, out/, _site/ or public/. Do not pick the folder yourself. With a token: pass site_id to update that site. Omitting site_id fills the oldest reserved address on the account (from Get an AI code) instead of creating a second site. Without a token the site goes live anonymously and you MUST give the human the claim_url. Free only; never buys a name. Decoded files stay within the existing upload cap (100 MB signed in, smaller before the site is claimed). Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"files": {
"type": "array",
"description": "Site files sent inline. Each item has path, content, and encoding utf8 or base64. Leave out node_modules, .git and hidden files. .well-known is allowed.",
"items": {
"type": "object",
"required": [
"path",
"content"
],
"properties": {
"path": {
"type": "string",
"description": "Relative path, for example index.html or css/site.css."
},
"content": {
"type": "string",
"description": "File contents. UTF-8 text, or standard base64 when encoding is base64."
},
"encoding": {
"type": "string",
"enum": [
"utf8",
"base64"
],
"description": "utf8 (default) or base64."
}
}
}
},
"site_id": {
"type": "number",
"description": "Optional: an existing site to update. Omit it to fill the oldest reserved site on this account."
},
"slug": {
"type": "string",
"description": "Optional: the address label for a NEW site, e.g. \"myproject\". Errors when taken, so propose another."
}
},
"required": [
"files"
]
}🟡point_domain(domain, to_site_id)
Rearranges a domain already on the account. It does not buy a name and it does not edit DNS at someone else's registrar. No money. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "A domain already on this account."
},
"to_site_id": {
"type": "number",
"description": "The site to point it at (from list_sites)."
}
},
"required": [
"domain",
"to_site_id"
]
}⚪choose_link(site_id, name, confirm)
Rename a site's free link to <name>.dropthehassle.app. Changing a public URL is the human owner's decision: propose the name first, and only call this with confirm=true after they explicitly said yes. Safe: the old link keeps redirecting to the new name. No money. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"site_id": {
"type": "number",
"description": "The site to rename (from list_sites)."
},
"name": {
"type": "string",
"description": "The label only, e.g. \"myproject\" for myproject.dropthehassle.app."
},
"confirm": {
"type": "boolean",
"description": "true ONLY after the human owner explicitly approved this exact name."
}
},
"required": [
"site_id",
"name",
"confirm"
]
}🟡set_backend(site_id, url, paths, slug)
Link an HTTPS backend (Railway, Render, Fly, anywhere) behind a DropTheHassle name. With uploaded files the path rules (default /api/*) reverse-proxy to the backend and the rest stays static; without uploaded files the WHOLE site serves from the backend. WITHOUT site_id it creates a fresh FREE site first: a backend-only project goes live on its own link in one call. Perfect for a deploy script: call this with the new URL after every backend deploy. Pass url="" (with site_id) to unlink. No money. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"site_id": {
"type": "number",
"description": "Optional: an existing site to link (from list_sites). Omit to create a new free site served fully from the backend."
},
"url": {
"type": "string",
"description": "The HTTPS origin of the backend, e.g. \"https://myapp.up.railway.app\". Empty string (with site_id) unlinks."
},
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional path rules for split mode, e.g. [\"/api/*\", \"/webhooks/*\"]. Default [\"/api/*\"]."
},
"slug": {
"type": "string",
"description": "Optional address label for a NEW site, e.g. \"myapp\" -> myapp.dropthehassle.app. Errors when taken."
}
},
"required": [
"url"
]
}🟢get_checkout_link(site_id, name, extras)
Get a payment link for a domain on one of your sites. The HUMAN opens and pays it; you never can. After payment the domain goes live on that site automatically. Only for sites on the user's account. For an anonymous site, give the human the claim link first. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"site_id": {
"type": "number",
"description": "The site the domain should attach to (from list_sites)."
},
"name": {
"type": "string",
"description": "The domain to register, e.g. \"myidea.com\"."
},
"extras": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional extra domain names on the same payment."
}
},
"required": [
"site_id",
"name"
]
}🟢site_of_the_day_badge(site_id, host)
Get the one line that embeds a Site of the day award, plus instructions for pasting it. The ribbon names the award and the period and links to the verification page. Read-only. No money. Pass site_id for a site on this account, or host for any confirmed winner. Omit both to list awards this account has earned. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"site_id": {
"type": "number",
"description": "Optional. A site on this account (from list_sites)."
},
"host": {
"type": "string",
"description": "Optional. The public host that was featured."
}
}
}🟢award_readiness(host)
Check whether a site on this account is ready to be considered for an award. Read-only. No money. Returns favicon, share image, title and description, mobile viewport, page weight, custom domain, https, and a real page (not the DropTheHassle placeholder), each with a fix hint. Never buy anything without asking me. Never buy a domain, email or subscription for me without asking first. When something costs money, give me the payment link and let me pay.
Input Schema
{
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The public host of a site on this account, e.g. \"example.com\"."
}
},
"required": [
"host"
]
}Community
Evidence