npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

agentdomains-mcp

v0.1.3

Published

MCP server for AgentDomains — free domains for the websites and APIs AI agents build.

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:

AGENTDOMAINS_API_KEY=adom_… npx -y agentdomains-mcp

Claude Code

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):

{
  "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:

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

| Variable | Purpose | | --- | --- | | AGENTDOMAINS_API_KEY | Your API key (adom_…). Falls back to api_key in ~/.agentdomains/config.json. | | AGENTDOMAINS_API_URL | Override 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

| Tool | Endpoint | Description | | --- | --- | --- | | check_availability | GET /v1/available | Is a label free? No key required. | | signup | POST /v1/signup | Create an account, get an API key (shown once). No key required. | | whoami | GET /v1/whoami | Account state, email, quota, usage. | | attach_email | POST /v1/account/email | Attach an email and send its verification link. | | claim_domain | POST /v1/subdomains | Register label.domain, optionally with a first record. | | list_domains | GET /v1/subdomains | List every name on the account. | | get_domain | GET /v1/subdomains/{label} | One name, its records, forward/proxy state. | | delete_domain | DELETE /v1/subdomains/{label} | Destructive — permanently delete a name and its records. | | add_dns_record | POST /v1/subdomains/{label}/records | Add an A, AAAA, CNAME, or TXT record. | | delete_record | DELETE /v1/subdomains/{label}/records/{id} | Destructive — remove one record, keeping the name. Ids come from get_domain. | | add_acme_challenge | POST /v1/subdomains/{label}/records | TXT at _acme-challenge for Let's Encrypt DNS-01. | | set_forward | PUT /v1/subdomains/{label}/forward | Redirect the name to a URL; replaces the address records on it. | | remove_forward | DELETE /v1/subdomains/{label}/forward | Stop forwarding. | | set_proxy | PUT /v1/subdomains/{label}/proxy | Serve a backend through the edge, with TLS terminated for you; replaces the address records on it. | | remove_proxy | DELETE /v1/subdomains/{label}/proxy | Stop proxying. | | delegate_nameservers | PUT /v1/subdomains/{label}/ns | Delegate the name to your own nameservers. | | delete_account | DELETE /v1/account[?force=true] | Destructive — close the account and kill its key; refuses while names are held unless force. | | upgrade_to_pro | POST /v1/billing/checkout | A Stripe checkout link for Pro (100 names, $5/month or $48/year). Charges nothing; a human opens the link and pays. | | manage_billing | POST /v1/billing/portal | A 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

npm install
npm 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.