domains-mcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # domains-mcp
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/domains-mcp.svg)](https://www.npmjs.com/package/domains-mcp)
4
+ [![license](https://img.shields.io/npm/l/domains-mcp.svg)](./LICENSE)
5
+
3
6
  An MCP server that lets Claude (and other agents) check **domain availability**, look up
4
7
  registration details, and suggest available names across TLDs.
5
8
 
@@ -18,17 +21,20 @@ with a port-43 **WHOIS** fallback. No API keys, no accounts, no paid services.
18
21
  Each result is one of `available`, `registered`, or `unknown`. `unknown` means no source could
19
22
  answer definitively — the server never guesses an answer.
20
23
 
21
- ## Install & build
24
+ ## Install
25
+
26
+ The package is published on npm: **[domains-mcp](https://www.npmjs.com/package/domains-mcp)**.
27
+
28
+ Run it directly with `npx` (no install needed):
22
29
 
23
30
  ```bash
24
- npm install
25
- npm run build
31
+ npx domains-mcp
26
32
  ```
27
33
 
28
- ## Quick smoke test (no MCP client needed)
34
+ …or install it globally:
29
35
 
30
36
  ```bash
31
- node dist/cli-smoke.js google.com some-free-name-12345.com github.io münchen.de
37
+ npm install -g domains-mcp
32
38
  ```
33
39
 
34
40
  ## Use with Claude
@@ -39,8 +45,8 @@ Add to your MCP client configuration (e.g. Claude Desktop's `claude_desktop_conf
39
45
  {
40
46
  "mcpServers": {
41
47
  "domains": {
42
- "command": "node",
43
- "args": ["/absolute/path/to/domains-mcp/dist/index.js"]
48
+ "command": "npx",
49
+ "args": ["-y", "domains-mcp"]
44
50
  }
45
51
  }
46
52
  }
@@ -49,6 +55,21 @@ Add to your MCP client configuration (e.g. Claude Desktop's `claude_desktop_conf
49
55
  Then ask things like: *"Is acme-robotics.com available?"*, *"Check these five domains for me,"* or
50
56
  *"Suggest available domains for the name 'lumina'."*
51
57
 
58
+ ## Local development
59
+
60
+ ```bash
61
+ git clone https://github.com/fulldev-pl1/domains-mcp.git
62
+ cd domains-mcp
63
+ npm install
64
+ npm run build
65
+ ```
66
+
67
+ Quick smoke test (no MCP client needed):
68
+
69
+ ```bash
70
+ npm run check -- google.com some-free-name-12345.com github.io münchen.de
71
+ ```
72
+
52
73
  ## Configuration (all optional)
53
74
 
54
75
  | Variable | Purpose | Default |
@@ -67,6 +88,8 @@ Then ask things like: *"Is acme-robotics.com available?"*, *"Check these five do
67
88
  IANA for the TLD's WHOIS server, queries it, and pattern-matches the response.
68
89
  4. Results are cached briefly to cut latency and respect registry rate limits.
69
90
 
91
+ See [DESIGN.md](DESIGN.md) for the full architecture and the rationale behind these decisions.
92
+
70
93
  ## Known limitations
71
94
 
72
95
  Some ccTLD WHOIS servers (e.g. DENIC for `.de`) return restricted or unusually formatted
package/dist/index.js CHANGED
@@ -1,14 +1,18 @@
1
1
  #!/usr/bin/env node
2
+ import { readFileSync } from "node:fs";
2
3
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
5
  import { z } from "zod";
5
6
  import { loadConfig } from "./config.js";
6
7
  import { DomainService } from "./service.js";
8
+ // Single source of truth for the version: read it from package.json at runtime.
9
+ // At runtime this file lives in dist/, so package.json sits one level up.
10
+ const { version } = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
7
11
  const config = loadConfig();
8
12
  const service = new DomainService(config);
9
13
  const server = new McpServer({
10
14
  name: "domains-mcp",
11
- version: "0.1.0",
15
+ version,
12
16
  });
13
17
  function statusLine(r) {
14
18
  const name = r.domainUnicode !== r.domain ? `${r.domainUnicode} (${r.domain})` : r.domain;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "domains-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "MCP server for checking domain availability via RDAP (with WHOIS fallback). Free, no API keys.",
5
5
  "type": "module",
6
6
  "bin": {