AgentDomains

io.github.tashfeenahmedv0.1.3更新于 Sep 30, 2026

Free domains under makes.fyi or agentdomains.co for the sites and APIs AI agents build.

已验证Streamable HTTP可网页运行Cloud & InfrastructureBusiness & Commerce

概览

AI 生成的概览

让助手在 makes.fyi 或 agentdomains.co 下获得免费主机名,并管理 DNS 记录、HTTPS、转发与反向代理。

功能
让助手为它构建的网站和 API 申请并管理子域名。工具涵盖:检查标签是否可用、注册账户、绑定并验证邮箱、申请或删除域名、列出和查看域名、添加或删除 A、AAAA、CNAME 与 TXT 记录、发布 ACME DNS-01 验证记录、设置 URL 转发或带 TLS 的边缘反向代理、委派域名服务器,以及生成用于 Pro 升级或账单管理的 Stripe 链接。
适用场景
当智能体需要为它构建的网站或 API 提供真实的公网主机名,或需要为这些名称管理 DNS 记录、HTTPS 终止、重定向或反向代理时使用。也适合在确定名称前检查想要的标签是否仍可用。如果只需要本地开发或已在别处管理 DNS,则不必使用。
运行要求
可通过 npx 作为本地进程运行(需要 Node 18+),也可连接远程 Streamable HTTP 端点。管理账户的工具需要 AgentDomains API 密钥(adom_...),通过 AGENTDOMAINS_API_KEY 或 Authorization bearer 头提供,也可读取 ~/.agentdomains/config.json 中的 api_key。check_availability 和 signup 无需密钥。需要能访问 AgentDomains API 的网络。
安装前请注意
API 密钥(AGENTDOMAINS_API_KEY 或 Authorization bearer 头)在注册时只显示一次且无法再次获取,请立即保存。多个工具具有破坏性:delete_domain、delete_record 和 delete_account 会永久删除域名、记录或整个账户及其密钥。set_forward 和 set_proxy 会在同一次调用中替换该标签上的 A、AAAA 或 CNAME 记录。upgrade_to_pro 和 manage_billing 返回 Stripe 链接,由人工打开并付款,工具本身不扣费。未确认邮箱的账户及其域名会在 30 天后被删除。

安装

在 SourceWeft 中

  1. 打开 控制台中的 AgentDomains,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "agentdomains-mcp": {
      "type": "http",
      "url": "https://mcp.agentdomains.co"
    }
  }
}

README

AgentDomains MCP server

MCP server for AgentDomains — free domains for the websites and APIs AI agents build. It gives any MCP-speaking agent a real hostname under makes.fyi or agentdomains.co, with DNS records, HTTPS, URL forwarding, and reverse proxying.

Two ways to run it: locally over stdio via npx, or against the hosted remote endpoint at https://mcp.agentdomains.co.

Install (stdio)

No install step — npx fetches it on demand:

bash
AGENTDOMAINS_API_KEY=adom_… npx -y agentdomains-mcp

Claude Code

bash
claude mcp add agentdomains --env AGENTDOMAINS_API_KEY=adom_… -- npx -y agentdomains-mcp

Claude Desktop and other config-file clients

Add to claude_desktop_config.json (or your client's equivalent):

json
{  "mcpServers": {    "agentdomains": {      "command": "npx",      "args": ["-y", "agentdomains-mcp"],      "env": { "AGENTDOMAINS_API_KEY": "adom_…" }    }  }}

Remote endpoint

https://mcp.agentdomains.co

Streamable HTTP; send JSON-RPC over POST with your key in the Authorization header:

bash
curl -s https://mcp.agentdomains.co \  -H 'Authorization: Bearer adom_…' \  -H 'Content-Type: application/json' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

In Claude Code: claude mcp add --transport http agentdomains https://mcp.agentdomains.co --header "Authorization: Bearer adom_…"

Configuration

VariablePurpose
AGENTDOMAINS_API_KEYYour API key (adom_…). Falls back to api_key in ~/.agentdomains/config.json.
AGENTDOMAINS_API_URLOverride the API base URL. Defaults to https://api.agentdomains.co.

If you already use the Go CLI, its ~/.agentdomains/config.json is picked up automatically and no env var is needed.

No key yet? Call the signup tool — it needs no credentials and returns one. The key is shown once and is never retrievable, so store it immediately. Accounts are provisional: attach an email with attach_email and confirm it within 30 days or the account and its domains are deleted.

The API key is never logged, printed, or included in any tool output.

Tools

ToolEndpointDescription
check_availabilityGET /v1/availableIs a label free? No key required.
signupPOST /v1/signupCreate an account, get an API key (shown once). No key required.
whoamiGET /v1/whoamiAccount state, email, quota, usage.
attach_emailPOST /v1/account/emailAttach an email and send its verification link.
claim_domainPOST /v1/subdomainsRegister label.domain, optionally with a first record.
list_domainsGET /v1/subdomainsList every name on the account.
get_domainGET /v1/subdomains/{label}One name, its records, forward/proxy state.
delete_domainDELETE /v1/subdomains/{label}Destructive — permanently delete a name and its records.
add_dns_recordPOST /v1/subdomains/{label}/recordsAdd an A, AAAA, CNAME, or TXT record.
delete_recordDELETE /v1/subdomains/{label}/records/{id}Destructive — remove one record, keeping the name. Ids come from get_domain.
add_acme_challengePOST /v1/subdomains/{label}/recordsTXT at _acme-challenge for Let's Encrypt DNS-01.
set_forwardPUT /v1/subdomains/{label}/forwardRedirect the name to a URL; replaces the address records on it.
remove_forwardDELETE /v1/subdomains/{label}/forwardStop forwarding.
set_proxyPUT /v1/subdomains/{label}/proxyServe a backend through the edge, with TLS terminated for you; replaces the address records on it.
remove_proxyDELETE /v1/subdomains/{label}/proxyStop proxying.
delegate_nameserversPUT /v1/subdomains/{label}/nsDelegate the name to your own nameservers.
delete_accountDELETE /v1/account[?force=true]Destructive — close the account and kill its key; refuses while names are held unless force.
upgrade_to_proPOST /v1/billing/checkoutA Stripe checkout link for Pro (100 names, $5/month or $48/year). Charges nothing; a human opens the link and pays.
manage_billingPOST /v1/billing/portalA Stripe billing-portal link for a Pro account (card, invoices, interval, cancel).

Every label-scoped tool takes an optional domain (makes.fyi, the default, or agentdomains.co).

Setting a forward or a proxy takes the hostname over. The A/AAAA/CNAME records on the label itself are deleted in the same call and handed back as replaced_records, so tell the user what moved. Sub-label records (www.myapp.makes.fyi) and TXT records are left alone, and if the forward fails to come up the replaced records are restored with new ids.

A claim and its first record stand or fall together. If claim_domain is given a record it cannot create, nothing is claimed — fix the record and call again. Re-claiming a name the account already holds answers 409 with owned:true, which means carry on.

On HTTPS

"Get me SSL" is not one operation here. Two honest paths:

  • set_proxy — the edge terminates TLS with its own certificate and proxies to your backend. Nothing to install on the origin.
  • add_acme_challenge — publishes the DNS-01 TXT record so your own ACME client can issue a Let's Encrypt certificate (needed for wildcards or hosts with no public port 80). A plain public web server can just use HTTP-01 and needs no DNS record at all.

Compatibility

Any MCP client works. Verified shapes for the common ones:

  • Claude Code — claude mcp add (stdio or --transport http), as above.
  • Claude Desktop — mcpServers block in claude_desktop_config.json.
  • OpenAI Agents SDK — MCPServerStdio(params={"command": "npx", "args": ["-y", "agentdomains-mcp"]}), or MCPServerStreamableHttp against the remote URL.
  • LangChain / LangGraph — langchain-mcp-adapters: MultiServerMCPClient({"agentdomains": {"command": "npx", "args": ["-y", "agentdomains-mcp"], "transport": "stdio"}}).
  • CrewAI — MCPServerAdapter with the same stdio parameters.
  • Anything else — point your client at npx -y agentdomains-mcp over stdio, or at https://mcp.agentdomains.co over Streamable HTTP.

Development

bash
npm installnpm run build     # tsc -> dist/npm run smoke     # boots dist/index.js, runs initialize + tools/list over stdio

Requires Node 18+. The only runtime dependency is @modelcontextprotocol/sdk.

Related

License

FSL-1.1-Apache-2.0 — see LICENSE. Same terms as the CLI.

MCP Registry listing

This server is listed in the official MCP Registry as io.github.tashfeenahmed/agentdomains-mcp — the index PulseMCP, Glama and other agent-tool directories read from. The metadata is server.json in this repo.

Publishing is manual (GitHub Actions is not running on this account). On each npm release, bump version in server.json and its packages[0].version to match package.json, publish to npm first, then:

bash
# once: install the publisher (macOS/Linux)curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
./mcp-publisher login github     # device-code flow as the tashfeenahmed GitHub account./mcp-publisher publish          # uploads server.jsoncurl -s "https://registry.modelcontextprotocol.io/v0/servers?search=io.github.tashfeenahmed/agentdomains-mcp"

The registry checks that the npm package's mcpName matches name in server.json, so the npm version named in server.json must already be published.

docs/publish-mcp-registry.yml is an optional GitHub Actions workflow that does the same on a v* tag via GitHub OIDC. It only runs if moved to .github/workflows/ and Actions is available on the account.

来源:README.md,提交 eb062bb

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.1.3最新Sep 30, 2026