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 +30 -7
- package/dist/index.js +5 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# domains-mcp
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/domains-mcp)
|
|
4
|
+
[](./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
|
|
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
|
-
|
|
25
|
-
npm run build
|
|
31
|
+
npx domains-mcp
|
|
26
32
|
```
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
…or install it globally:
|
|
29
35
|
|
|
30
36
|
```bash
|
|
31
|
-
|
|
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": "
|
|
43
|
-
"args": ["
|
|
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
|
|
15
|
+
version,
|
|
12
16
|
});
|
|
13
17
|
function statusLine(r) {
|
|
14
18
|
const name = r.domainUnicode !== r.domain ? `${r.domainUnicode} (${r.domain})` : r.domain;
|