AgentDomains

io.github.tashfeenahmedv0.1.3更新於 Oct 1, 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