domain-search-mcp 1.1.0 → 1.1.2
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 +57 -1
- package/context7.json +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/registrars/godaddy-mcp.d.ts +67 -0
- package/dist/registrars/godaddy-mcp.d.ts.map +1 -0
- package/dist/registrars/godaddy-mcp.js +301 -0
- package/dist/registrars/godaddy-mcp.js.map +1 -0
- package/dist/registrars/index.d.ts +1 -0
- package/dist/registrars/index.d.ts.map +1 -1
- package/dist/registrars/index.js +4 -1
- package/dist/registrars/index.js.map +1 -1
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -1
- package/dist/services/domain-search.d.ts +5 -4
- package/dist/services/domain-search.d.ts.map +1 -1
- package/dist/services/domain-search.js +24 -8
- package/dist/services/domain-search.js.map +1 -1
- package/dist/tools/check_socials.d.ts.map +1 -1
- package/dist/tools/check_socials.js +21 -6
- package/dist/tools/check_socials.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/suggest_domains_smart.d.ts +113 -0
- package/dist/tools/suggest_domains_smart.d.ts.map +1 -0
- package/dist/tools/suggest_domains_smart.js +311 -0
- package/dist/tools/suggest_domains_smart.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/semantic-engine.d.ts +59 -0
- package/dist/utils/semantic-engine.d.ts.map +1 -0
- package/dist/utils/semantic-engine.js +427 -0
- package/dist/utils/semantic-engine.js.map +1 -0
- package/package.json +1 -1
- package/src/config.ts +1 -0
- package/src/registrars/godaddy-mcp.ts +380 -0
- package/src/registrars/index.ts +1 -0
- package/src/server.ts +16 -0
- package/src/services/domain-search.ts +25 -9
- package/src/tools/check_socials.ts +22 -6
- package/src/tools/index.ts +7 -0
- package/src/tools/suggest_domains_smart.ts +392 -0
- package/src/types.ts +2 -0
- package/src/utils/semantic-engine.ts +483 -0
package/README.md
CHANGED
|
@@ -67,6 +67,7 @@ vibecoding.dev - Available - $10.18/year (Porkbun)
|
|
|
67
67
|
| **bulk_search** | Check up to 100 domains at once |
|
|
68
68
|
| **compare_registrars** | Find the best price across registrars |
|
|
69
69
|
| **suggest_domains** | Get available variations when your name is taken |
|
|
70
|
+
| **suggest_domains_smart** | AI-powered suggestions from keywords or descriptions |
|
|
70
71
|
| **tld_info** | Learn about TLDs, restrictions, and typical pricing |
|
|
71
72
|
| **check_socials** | Verify if usernames are available on GitHub, Twitter, Instagram |
|
|
72
73
|
|
|
@@ -209,6 +210,59 @@ Get variations when your preferred name is taken:
|
|
|
209
210
|
}
|
|
210
211
|
```
|
|
211
212
|
|
|
213
|
+
### suggest_domains_smart
|
|
214
|
+
|
|
215
|
+
AI-powered domain suggestions using semantic analysis:
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
// Input - natural language query
|
|
219
|
+
{
|
|
220
|
+
"query": "ai customer service chatbot",
|
|
221
|
+
"tld": "io",
|
|
222
|
+
"industry": "tech", // optional - auto-detected
|
|
223
|
+
"style": "brandable", // brandable, descriptive, short, creative
|
|
224
|
+
"max_suggestions": 10
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// Output
|
|
228
|
+
{
|
|
229
|
+
"query": "ai customer service chatbot",
|
|
230
|
+
"detected_words": ["ai", "customer", "service", "chat", "bot"],
|
|
231
|
+
"detected_industry": "tech",
|
|
232
|
+
"results": {
|
|
233
|
+
"available": [
|
|
234
|
+
{
|
|
235
|
+
"domain": "servicebotai.io",
|
|
236
|
+
"price_first_year": 32.98,
|
|
237
|
+
"premium": false,
|
|
238
|
+
"score": 72
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"domain": "chatservicehub.io",
|
|
242
|
+
"price_first_year": 32.98,
|
|
243
|
+
"premium": false,
|
|
244
|
+
"score": 68
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
"premium": [],
|
|
248
|
+
"unavailable_count": 15
|
|
249
|
+
},
|
|
250
|
+
"insights": [
|
|
251
|
+
"🎯 Detected industry: tech",
|
|
252
|
+
"✅ Found 8 available domains",
|
|
253
|
+
"⭐ Top pick: servicebotai.io ($32.98/yr)"
|
|
254
|
+
],
|
|
255
|
+
"related_terms": ["neural", "cognitive", "assist", "connect"]
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Features:**
|
|
260
|
+
- Understands natural language queries ("coffee shop in seattle")
|
|
261
|
+
- Auto-detects industry for contextual suggestions
|
|
262
|
+
- Generates portmanteau/blended names
|
|
263
|
+
- Multiple style modes (brandable, short, creative)
|
|
264
|
+
- Premium domain detection
|
|
265
|
+
|
|
212
266
|
### tld_info
|
|
213
267
|
|
|
214
268
|
Learn about a TLD:
|
|
@@ -344,6 +398,7 @@ domain-search-mcp/
|
|
|
344
398
|
│ │ ├── bulk_search.ts
|
|
345
399
|
│ │ ├── compare_registrars.ts
|
|
346
400
|
│ │ ├── suggest_domains.ts
|
|
401
|
+
│ │ ├── suggest_domains_smart.ts # AI-powered suggestions
|
|
347
402
|
│ │ ├── tld_info.ts
|
|
348
403
|
│ │ └── check_socials.ts
|
|
349
404
|
│ ├── registrars/ # Registrar adapters
|
|
@@ -359,7 +414,8 @@ domain-search-mcp/
|
|
|
359
414
|
│ ├── logger.ts
|
|
360
415
|
│ ├── cache.ts
|
|
361
416
|
│ ├── errors.ts
|
|
362
|
-
│
|
|
417
|
+
│ ├── validators.ts
|
|
418
|
+
│ └── semantic-engine.ts # Word segmentation & suggestions
|
|
363
419
|
├── tests/
|
|
364
420
|
│ ├── unit/
|
|
365
421
|
│ └── integration/
|
package/context7.json
ADDED
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAoCzC;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAiDnC;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAe,CAAC;AAEnC;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAoCzC;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAiDnC;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAe,CAAC;AAEnC;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAO9C"}
|
package/dist/config.js
CHANGED
|
@@ -111,6 +111,7 @@ function getAvailableSources() {
|
|
|
111
111
|
sources.push('porkbun');
|
|
112
112
|
if (exports.config.namecheap.enabled)
|
|
113
113
|
sources.push('namecheap');
|
|
114
|
+
sources.push('godaddy'); // GoDaddy MCP - always available (no auth needed)
|
|
114
115
|
sources.push('rdap', 'whois'); // Always available as fallbacks
|
|
115
116
|
return sources;
|
|
116
117
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA0CH,gCAiDC;AAWD,0CAEC;AAKD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoDaddy MCP Adapter.
|
|
3
|
+
*
|
|
4
|
+
* Uses GoDaddy's public MCP endpoint for domain availability checks.
|
|
5
|
+
* No API key or reseller account required!
|
|
6
|
+
*
|
|
7
|
+
* Endpoint: https://api.godaddy.com/v1/domains/mcp
|
|
8
|
+
* Protocol: JSON-RPC 2.0 over HTTP (Streamable HTTP transport)
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Free availability checking (no auth)
|
|
12
|
+
* - Bulk checking up to 1000 domains
|
|
13
|
+
* - Premium/auction domain detection
|
|
14
|
+
*
|
|
15
|
+
* Limitations:
|
|
16
|
+
* - No pricing information
|
|
17
|
+
* - Rate limits not documented (be conservative)
|
|
18
|
+
*/
|
|
19
|
+
import { RegistrarAdapter } from './base.js';
|
|
20
|
+
import type { DomainResult, TLDInfo } from '../types.js';
|
|
21
|
+
/**
|
|
22
|
+
* Parse availability from GoDaddy MCP text response.
|
|
23
|
+
* The response is markdown-formatted text with different formats for single vs bulk queries.
|
|
24
|
+
*/
|
|
25
|
+
interface ParsedAvailability {
|
|
26
|
+
available: boolean;
|
|
27
|
+
premium: boolean;
|
|
28
|
+
auction: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* GoDaddy MCP Adapter.
|
|
32
|
+
*
|
|
33
|
+
* Uses GoDaddy's public MCP endpoint - no authentication required!
|
|
34
|
+
*/
|
|
35
|
+
export declare class GodaddyMcpAdapter extends RegistrarAdapter {
|
|
36
|
+
readonly name = "GoDaddy";
|
|
37
|
+
readonly id = "godaddy";
|
|
38
|
+
constructor();
|
|
39
|
+
/**
|
|
40
|
+
* Check if GoDaddy MCP is enabled.
|
|
41
|
+
* Always enabled since no API key needed!
|
|
42
|
+
*/
|
|
43
|
+
isEnabled(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Search for domain availability using GoDaddy MCP.
|
|
46
|
+
*/
|
|
47
|
+
search(domain: string, tld: string): Promise<DomainResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Bulk check multiple domains at once.
|
|
50
|
+
* GoDaddy MCP supports up to 1000 domains per request!
|
|
51
|
+
*/
|
|
52
|
+
bulkSearch(domains: string[]): Promise<Map<string, ParsedAvailability>>;
|
|
53
|
+
/**
|
|
54
|
+
* Get TLD info - not supported by GoDaddy MCP.
|
|
55
|
+
*/
|
|
56
|
+
getTldInfo(_tld: string): Promise<TLDInfo | null>;
|
|
57
|
+
/**
|
|
58
|
+
* Call a GoDaddy MCP tool via JSON-RPC.
|
|
59
|
+
*/
|
|
60
|
+
private callMcpTool;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Singleton instance.
|
|
64
|
+
*/
|
|
65
|
+
export declare const godaddyMcpAdapter: GodaddyMcpAdapter;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=godaddy-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godaddy-mcp.d.ts","sourceRoot":"","sources":["../../src/registrars/godaddy-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,gBAAgB,EAAe,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAiCzD;;;GAGG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AA0HD;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,EAAE,aAAa;;IAQxB;;;OAGG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BhE;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAmB7E;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAIvD;;OAEG;YACW,WAAW;CAyG1B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* GoDaddy MCP Adapter.
|
|
4
|
+
*
|
|
5
|
+
* Uses GoDaddy's public MCP endpoint for domain availability checks.
|
|
6
|
+
* No API key or reseller account required!
|
|
7
|
+
*
|
|
8
|
+
* Endpoint: https://api.godaddy.com/v1/domains/mcp
|
|
9
|
+
* Protocol: JSON-RPC 2.0 over HTTP (Streamable HTTP transport)
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Free availability checking (no auth)
|
|
13
|
+
* - Bulk checking up to 1000 domains
|
|
14
|
+
* - Premium/auction domain detection
|
|
15
|
+
*
|
|
16
|
+
* Limitations:
|
|
17
|
+
* - No pricing information
|
|
18
|
+
* - Rate limits not documented (be conservative)
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.godaddyMcpAdapter = exports.GodaddyMcpAdapter = void 0;
|
|
22
|
+
const zod_1 = require("zod");
|
|
23
|
+
const base_js_1 = require("./base.js");
|
|
24
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
25
|
+
const errors_js_1 = require("../utils/errors.js");
|
|
26
|
+
/**
|
|
27
|
+
* GoDaddy MCP endpoint.
|
|
28
|
+
*/
|
|
29
|
+
const GODADDY_MCP_ENDPOINT = 'https://api.godaddy.com/v1/domains/mcp';
|
|
30
|
+
/**
|
|
31
|
+
* JSON-RPC request ID counter.
|
|
32
|
+
*/
|
|
33
|
+
let jsonRpcId = 1;
|
|
34
|
+
/**
|
|
35
|
+
* Response schema for MCP tool call.
|
|
36
|
+
*/
|
|
37
|
+
const McpResponseSchema = zod_1.z.object({
|
|
38
|
+
jsonrpc: zod_1.z.literal('2.0'),
|
|
39
|
+
id: zod_1.z.number(),
|
|
40
|
+
result: zod_1.z.object({
|
|
41
|
+
content: zod_1.z.array(zod_1.z.object({
|
|
42
|
+
type: zod_1.z.string(),
|
|
43
|
+
text: zod_1.z.string(),
|
|
44
|
+
})),
|
|
45
|
+
isError: zod_1.z.boolean().optional(),
|
|
46
|
+
}).optional(),
|
|
47
|
+
error: zod_1.z.object({
|
|
48
|
+
code: zod_1.z.number(),
|
|
49
|
+
message: zod_1.z.string(),
|
|
50
|
+
}).optional(),
|
|
51
|
+
});
|
|
52
|
+
function parseAvailabilityResponse(text, domain) {
|
|
53
|
+
const normalizedDomain = domain.toLowerCase();
|
|
54
|
+
const normalizedText = text.toLowerCase();
|
|
55
|
+
// Default: unavailable
|
|
56
|
+
const result = {
|
|
57
|
+
available: false,
|
|
58
|
+
premium: false,
|
|
59
|
+
auction: false,
|
|
60
|
+
};
|
|
61
|
+
// ==== SINGLE DOMAIN FORMAT ====
|
|
62
|
+
// Format: "STATUS: ✅ AVAILABLE" or "AVAILABILITY: Standard registration available"
|
|
63
|
+
if (normalizedText.includes('status:') || normalizedText.includes('availability:')) {
|
|
64
|
+
// Check for explicit availability indicators
|
|
65
|
+
if (normalizedText.includes('status: ✅ available') ||
|
|
66
|
+
normalizedText.includes('✅ available') ||
|
|
67
|
+
normalizedText.includes('standard registration available') ||
|
|
68
|
+
normalizedText.includes('purchasable: yes')) {
|
|
69
|
+
result.available = true;
|
|
70
|
+
// Check if premium
|
|
71
|
+
if (normalizedText.includes('type: premium') || normalizedText.includes('premium domain')) {
|
|
72
|
+
result.premium = true;
|
|
73
|
+
}
|
|
74
|
+
// Check if auction
|
|
75
|
+
if (normalizedText.includes('type: auction') || normalizedText.includes('auction domain')) {
|
|
76
|
+
result.auction = true;
|
|
77
|
+
}
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
// Explicit unavailable
|
|
81
|
+
if (normalizedText.includes('status: ❌') ||
|
|
82
|
+
normalizedText.includes('not available') ||
|
|
83
|
+
normalizedText.includes('already registered') ||
|
|
84
|
+
normalizedText.includes('purchasable: no')) {
|
|
85
|
+
result.available = false;
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// ==== BULK DOMAIN FORMAT ====
|
|
90
|
+
// Check if domain appears in available section
|
|
91
|
+
// GoDaddy formats: "✅ **AVAILABLE DOMAINS" or "✅ **STANDARD SUGGESTIONS"
|
|
92
|
+
const availableMatch = text.match(/✅\s*\*\*(?:AVAILABLE|STANDARD)[^]*?(?=(?:💎|⚠️|❌|\*\*[A-Z])|$)/i);
|
|
93
|
+
if (availableMatch && availableMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
94
|
+
result.available = true;
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
// Check premium section
|
|
98
|
+
// GoDaddy format: "💎 **PREMIUM DOMAINS"
|
|
99
|
+
const premiumMatch = text.match(/💎\s*\*\*PREMIUM[^]*?(?=(?:⚠️|❌|\*\*[A-Z])|$)/i);
|
|
100
|
+
if (premiumMatch && premiumMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
101
|
+
result.available = true;
|
|
102
|
+
result.premium = true;
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
// Check auction section
|
|
106
|
+
// GoDaddy format: "🔨 **AUCTION DOMAINS" or similar
|
|
107
|
+
const auctionMatch = text.match(/🔨\s*\*\*AUCTION[^]*?(?=(?:💎|⚠️|❌|\*\*[A-Z])|$)/i);
|
|
108
|
+
if (auctionMatch && auctionMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
109
|
+
result.available = true;
|
|
110
|
+
result.auction = true;
|
|
111
|
+
return result;
|
|
112
|
+
}
|
|
113
|
+
// Check unavailable section
|
|
114
|
+
// GoDaddy format: "❌ **UNAVAILABLE DOMAINS"
|
|
115
|
+
const unavailableMatch = text.match(/❌\s*\*\*UNAVAILABLE[^]*?(?=(?:💎|⚠️|\*\*[A-Z])|$)/i);
|
|
116
|
+
if (unavailableMatch && unavailableMatch[0].toLowerCase().includes(normalizedDomain)) {
|
|
117
|
+
result.available = false;
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
// ==== FALLBACK: LINE-BY-LINE ANALYSIS ====
|
|
121
|
+
const lines = text.split('\n');
|
|
122
|
+
for (const line of lines) {
|
|
123
|
+
const lowerLine = line.toLowerCase();
|
|
124
|
+
// Check for domain-specific lines or general status
|
|
125
|
+
if (lowerLine.includes(normalizedDomain) || lowerLine.includes('status') || lowerLine.includes('available')) {
|
|
126
|
+
// Premium indicators
|
|
127
|
+
if (lowerLine.includes('premium')) {
|
|
128
|
+
result.available = true;
|
|
129
|
+
result.premium = true;
|
|
130
|
+
return result;
|
|
131
|
+
}
|
|
132
|
+
// Auction indicators
|
|
133
|
+
if (lowerLine.includes('auction')) {
|
|
134
|
+
result.available = true;
|
|
135
|
+
result.auction = true;
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
// Available indicators (must check before unavailable since "unavailable" contains "available")
|
|
139
|
+
if ((lowerLine.includes('✅') && lowerLine.includes('available')) ||
|
|
140
|
+
lowerLine.includes('register at') ||
|
|
141
|
+
lowerLine.includes('can be registered')) {
|
|
142
|
+
result.available = true;
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
// Unavailable indicators
|
|
146
|
+
if (lowerLine.includes('❌') || lowerLine.includes('unavailable') || lowerLine.includes('not available')) {
|
|
147
|
+
result.available = false;
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* GoDaddy MCP Adapter.
|
|
156
|
+
*
|
|
157
|
+
* Uses GoDaddy's public MCP endpoint - no authentication required!
|
|
158
|
+
*/
|
|
159
|
+
class GodaddyMcpAdapter extends base_js_1.RegistrarAdapter {
|
|
160
|
+
name = 'GoDaddy';
|
|
161
|
+
id = 'godaddy';
|
|
162
|
+
constructor() {
|
|
163
|
+
// Conservative rate limit - GoDaddy doesn't document their limits
|
|
164
|
+
// Using 30/min to be safe (they say "excessive requests may be throttled")
|
|
165
|
+
super(30);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Check if GoDaddy MCP is enabled.
|
|
169
|
+
* Always enabled since no API key needed!
|
|
170
|
+
*/
|
|
171
|
+
isEnabled() {
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Search for domain availability using GoDaddy MCP.
|
|
176
|
+
*/
|
|
177
|
+
async search(domain, tld) {
|
|
178
|
+
const fullDomain = `${domain}.${tld}`;
|
|
179
|
+
return this.retryWithBackoff(async () => {
|
|
180
|
+
const text = await this.callMcpTool('domains_check_availability', {
|
|
181
|
+
domains: fullDomain,
|
|
182
|
+
});
|
|
183
|
+
const parsed = parseAvailabilityResponse(text, fullDomain);
|
|
184
|
+
return this.createResult(domain, tld, {
|
|
185
|
+
available: parsed.available,
|
|
186
|
+
premium: parsed.premium,
|
|
187
|
+
price_first_year: null, // GoDaddy MCP doesn't provide pricing
|
|
188
|
+
price_renewal: null,
|
|
189
|
+
privacy_included: false, // Unknown
|
|
190
|
+
source: 'godaddy_api',
|
|
191
|
+
premium_reason: parsed.premium
|
|
192
|
+
? 'Premium domain (GoDaddy)'
|
|
193
|
+
: parsed.auction
|
|
194
|
+
? 'Auction domain (GoDaddy)'
|
|
195
|
+
: undefined,
|
|
196
|
+
});
|
|
197
|
+
}, `check ${fullDomain}`);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Bulk check multiple domains at once.
|
|
201
|
+
* GoDaddy MCP supports up to 1000 domains per request!
|
|
202
|
+
*/
|
|
203
|
+
async bulkSearch(domains) {
|
|
204
|
+
const results = new Map();
|
|
205
|
+
// GoDaddy accepts comma-separated domains
|
|
206
|
+
const domainList = domains.join(', ');
|
|
207
|
+
const text = await this.callMcpTool('domains_check_availability', {
|
|
208
|
+
domains: domainList,
|
|
209
|
+
});
|
|
210
|
+
// Parse results for each domain
|
|
211
|
+
for (const domain of domains) {
|
|
212
|
+
const parsed = parseAvailabilityResponse(text, domain);
|
|
213
|
+
results.set(domain.toLowerCase(), parsed);
|
|
214
|
+
}
|
|
215
|
+
return results;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get TLD info - not supported by GoDaddy MCP.
|
|
219
|
+
*/
|
|
220
|
+
async getTldInfo(_tld) {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Call a GoDaddy MCP tool via JSON-RPC.
|
|
225
|
+
*/
|
|
226
|
+
async callMcpTool(toolName, args) {
|
|
227
|
+
const requestId = jsonRpcId++;
|
|
228
|
+
const payload = {
|
|
229
|
+
jsonrpc: '2.0',
|
|
230
|
+
method: 'tools/call',
|
|
231
|
+
params: {
|
|
232
|
+
name: toolName,
|
|
233
|
+
arguments: args,
|
|
234
|
+
},
|
|
235
|
+
id: requestId,
|
|
236
|
+
};
|
|
237
|
+
logger_js_1.logger.debug('GoDaddy MCP request', {
|
|
238
|
+
tool: toolName,
|
|
239
|
+
args,
|
|
240
|
+
request_id: requestId,
|
|
241
|
+
});
|
|
242
|
+
try {
|
|
243
|
+
const response = await this.withTimeout(fetch(GODADDY_MCP_ENDPOINT, {
|
|
244
|
+
method: 'POST',
|
|
245
|
+
headers: {
|
|
246
|
+
'Content-Type': 'application/json',
|
|
247
|
+
'Accept': 'application/json, text/event-stream',
|
|
248
|
+
},
|
|
249
|
+
body: JSON.stringify(payload),
|
|
250
|
+
}), `GoDaddy MCP ${toolName}`, 15000);
|
|
251
|
+
if (!response.ok) {
|
|
252
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', `HTTP ${response.status}: ${response.statusText}`);
|
|
253
|
+
}
|
|
254
|
+
// Response is SSE format: "event: message\ndata: {...}"
|
|
255
|
+
const rawText = await response.text();
|
|
256
|
+
// Extract JSON from SSE format
|
|
257
|
+
const dataMatch = rawText.match(/data:\s*(\{.*\})/s);
|
|
258
|
+
if (!dataMatch) {
|
|
259
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', 'Invalid response format - expected SSE');
|
|
260
|
+
}
|
|
261
|
+
const jsonStr = dataMatch[1];
|
|
262
|
+
const parsed = JSON.parse(jsonStr);
|
|
263
|
+
// Validate response
|
|
264
|
+
const validated = McpResponseSchema.parse(parsed);
|
|
265
|
+
if (validated.error) {
|
|
266
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', `RPC Error ${validated.error.code}: ${validated.error.message}`);
|
|
267
|
+
}
|
|
268
|
+
if (!validated.result || validated.result.isError) {
|
|
269
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', 'Tool call returned error');
|
|
270
|
+
}
|
|
271
|
+
// Extract text content
|
|
272
|
+
const textContent = validated.result.content.find(c => c.type === 'text');
|
|
273
|
+
if (!textContent) {
|
|
274
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', 'No text content in response');
|
|
275
|
+
}
|
|
276
|
+
logger_js_1.logger.debug('GoDaddy MCP response', {
|
|
277
|
+
request_id: requestId,
|
|
278
|
+
text_length: textContent.text.length,
|
|
279
|
+
});
|
|
280
|
+
return textContent.text;
|
|
281
|
+
}
|
|
282
|
+
catch (error) {
|
|
283
|
+
if (error instanceof errors_js_1.RegistrarApiError) {
|
|
284
|
+
throw error;
|
|
285
|
+
}
|
|
286
|
+
if (error instanceof Error) {
|
|
287
|
+
if (error.name === 'AbortError' || error.message.includes('timeout')) {
|
|
288
|
+
throw error;
|
|
289
|
+
}
|
|
290
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', error.message);
|
|
291
|
+
}
|
|
292
|
+
throw new errors_js_1.RegistrarApiError('GoDaddy MCP', 'Unknown network error');
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
exports.GodaddyMcpAdapter = GodaddyMcpAdapter;
|
|
297
|
+
/**
|
|
298
|
+
* Singleton instance.
|
|
299
|
+
*/
|
|
300
|
+
exports.godaddyMcpAdapter = new GodaddyMcpAdapter();
|
|
301
|
+
//# sourceMappingURL=godaddy-mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"godaddy-mcp.js","sourceRoot":"","sources":["../../src/registrars/godaddy-mcp.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAEH,6BAAwB;AACxB,uCAA0D;AAE1D,kDAA4C;AAC5C,kDAAuD;AAEvD;;GAEG;AACH,MAAM,oBAAoB,GAAG,wCAAwC,CAAC;AAEtE;;GAEG;AACH,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB;;GAEG;AACH,MAAM,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAC,QAAQ,EAAE;IACb,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;KACpB,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAYH,SAAS,yBAAyB,CAAC,IAAY,EAAE,MAAc;IAC7D,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAE1C,uBAAuB;IACvB,MAAM,MAAM,GAAuB;QACjC,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,iCAAiC;IACjC,mFAAmF;IACnF,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACnF,6CAA6C;QAC7C,IACE,cAAc,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC9C,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC;YACtC,cAAc,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC1D,cAAc,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC3C,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YAExB,mBAAmB;YACnB,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1F,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,mBAAmB;YACnB,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC1F,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uBAAuB;QACvB,IACE,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC;YACpC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC7C,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC1C,CAAC;YACD,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,+CAA+C;IAC/C,yEAAyE;IACzE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrG,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,yCAAyC;IACzC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAClF,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,oDAAoD;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACrF,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4BAA4B;IAC5B,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1F,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,4CAA4C;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAErC,oDAAoD;QACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5G,qBAAqB;YACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,qBAAqB;YACrB,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,gGAAgG;YAChG,IACE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC5D,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACjC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EACvC,CAAC;gBACD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,yBAAyB;YACzB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;gBACzB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAa,iBAAkB,SAAQ,0BAAgB;IAC5C,IAAI,GAAG,SAAS,CAAC;IACjB,EAAE,GAAG,SAAS,CAAC;IAExB;QACE,kEAAkE;QAClE,2EAA2E;QAC3E,KAAK,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,GAAW;QACtC,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;QAEtC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE;YACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE;gBAChE,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE3D,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE;gBACpC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,gBAAgB,EAAE,IAAI,EAAE,sCAAsC;gBAC9D,aAAa,EAAE,IAAI;gBACnB,gBAAgB,EAAE,KAAK,EAAE,UAAU;gBACnC,MAAM,EAAE,aAAa;gBACrB,cAAc,EAAE,MAAM,CAAC,OAAO;oBAC5B,CAAC,CAAC,0BAA0B;oBAC5B,CAAC,CAAC,MAAM,CAAC,OAAO;wBAChB,CAAC,CAAC,0BAA0B;wBAC5B,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,OAAiB;QAChC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;QAEtD,0CAA0C;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE;YAChE,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,gCAAgC;QAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,QAAgB,EAChB,IAA6B;QAE7B,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;QAE9B,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,IAAI;aAChB;YACD,EAAE,EAAE,SAAS;SACd,CAAC;QAEF,kBAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAClC,IAAI,EAAE,QAAQ;YACd,IAAI;YACJ,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,KAAK,CAAC,oBAAoB,EAAE;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,QAAQ,EAAE,qCAAqC;iBAChD;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,EACF,eAAe,QAAQ,EAAE,EACzB,KAAK,CACN,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,6BAAiB,CACzB,aAAa,EACb,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAClD,CAAC;YACJ,CAAC;YAED,wDAAwD;YACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEtC,+BAA+B;YAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,6BAAiB,CACzB,aAAa,EACb,wCAAwC,CACzC,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;YAEpC,oBAAoB;YACpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAElD,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,6BAAiB,CACzB,aAAa,EACb,aAAa,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAChE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClD,MAAM,IAAI,6BAAiB,CACzB,aAAa,EACb,0BAA0B,CAC3B,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,6BAAiB,CACzB,aAAa,EACb,6BAA6B,CAC9B,CAAC;YACJ,CAAC;YAED,kBAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACnC,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM;aACrC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,IAAI,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,6BAAiB,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrE,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,IAAI,6BAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,6BAAiB,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF;AAzLD,8CAyLC;AAED;;GAEG;AACU,QAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -4,4 +4,5 @@
|
|
|
4
4
|
export { RegistrarAdapter } from './base.js';
|
|
5
5
|
export { PorkbunAdapter, porkbunAdapter } from './porkbun.js';
|
|
6
6
|
export { NamecheapAdapter, namecheapAdapter } from './namecheap.js';
|
|
7
|
+
export { GodaddyMcpAdapter, godaddyMcpAdapter } from './godaddy-mcp.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registrars/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registrars/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/registrars/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Registrar Exports.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.namecheapAdapter = exports.NamecheapAdapter = exports.porkbunAdapter = exports.PorkbunAdapter = exports.RegistrarAdapter = void 0;
|
|
6
|
+
exports.godaddyMcpAdapter = exports.GodaddyMcpAdapter = exports.namecheapAdapter = exports.NamecheapAdapter = exports.porkbunAdapter = exports.PorkbunAdapter = exports.RegistrarAdapter = void 0;
|
|
7
7
|
var base_js_1 = require("./base.js");
|
|
8
8
|
Object.defineProperty(exports, "RegistrarAdapter", { enumerable: true, get: function () { return base_js_1.RegistrarAdapter; } });
|
|
9
9
|
var porkbun_js_1 = require("./porkbun.js");
|
|
@@ -12,4 +12,7 @@ Object.defineProperty(exports, "porkbunAdapter", { enumerable: true, get: functi
|
|
|
12
12
|
var namecheap_js_1 = require("./namecheap.js");
|
|
13
13
|
Object.defineProperty(exports, "NamecheapAdapter", { enumerable: true, get: function () { return namecheap_js_1.NamecheapAdapter; } });
|
|
14
14
|
Object.defineProperty(exports, "namecheapAdapter", { enumerable: true, get: function () { return namecheap_js_1.namecheapAdapter; } });
|
|
15
|
+
var godaddy_mcp_js_1 = require("./godaddy-mcp.js");
|
|
16
|
+
Object.defineProperty(exports, "GodaddyMcpAdapter", { enumerable: true, get: function () { return godaddy_mcp_js_1.GodaddyMcpAdapter; } });
|
|
17
|
+
Object.defineProperty(exports, "godaddyMcpAdapter", { enumerable: true, get: function () { return godaddy_mcp_js_1.godaddyMcpAdapter; } });
|
|
15
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registrars/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AACzB,2CAA8D;AAArD,4GAAA,cAAc,OAAA;AAAE,4GAAA,cAAc,OAAA;AACvC,+CAAoE;AAA3D,gHAAA,gBAAgB,OAAA;AAAE,gHAAA,gBAAgB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registrars/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAA6C;AAApC,2GAAA,gBAAgB,OAAA;AACzB,2CAA8D;AAArD,4GAAA,cAAc,OAAA;AAAE,4GAAA,cAAc,OAAA;AACvC,+CAAoE;AAA3D,gHAAA,gBAAgB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAC3C,mDAAwE;AAA/D,mHAAA,iBAAiB,OAAA;AAAE,mHAAA,iBAAiB,OAAA"}
|
package/dist/server.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* - bulk_search: Check many domains at once
|
|
11
11
|
* - compare_registrars: Compare pricing across registrars
|
|
12
12
|
* - suggest_domains: Generate available name variations
|
|
13
|
+
* - suggest_domains_smart: AI-powered domain suggestions with semantic analysis
|
|
13
14
|
* - tld_info: Get TLD information and recommendations
|
|
14
15
|
* - check_socials: Check social handle availability
|
|
15
16
|
*
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG"}
|
package/dist/server.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* - bulk_search: Check many domains at once
|
|
12
12
|
* - compare_registrars: Compare pricing across registrars
|
|
13
13
|
* - suggest_domains: Generate available name variations
|
|
14
|
+
* - suggest_domains_smart: AI-powered domain suggestions with semantic analysis
|
|
14
15
|
* - tld_info: Get TLD information and recommendations
|
|
15
16
|
* - check_socials: Check social handle availability
|
|
16
17
|
*
|
|
@@ -37,6 +38,7 @@ const TOOLS = [
|
|
|
37
38
|
index_js_2.bulkSearchTool,
|
|
38
39
|
index_js_2.compareRegistrarsTool,
|
|
39
40
|
index_js_2.suggestDomainsTool,
|
|
41
|
+
index_js_2.suggestDomainsSmartTool,
|
|
40
42
|
index_js_2.tldInfoTool,
|
|
41
43
|
index_js_2.checkSocialsTool,
|
|
42
44
|
];
|
|
@@ -141,6 +143,15 @@ async function executeToolCall(name, args) {
|
|
|
141
143
|
variants: args.variants,
|
|
142
144
|
max_suggestions: args.max_suggestions || 10,
|
|
143
145
|
});
|
|
146
|
+
case 'suggest_domains_smart':
|
|
147
|
+
return (0, index_js_2.executeSuggestDomainsSmart)({
|
|
148
|
+
query: args.query,
|
|
149
|
+
tld: args.tld || 'com',
|
|
150
|
+
industry: args.industry,
|
|
151
|
+
style: args.style || 'brandable',
|
|
152
|
+
max_suggestions: args.max_suggestions || 15,
|
|
153
|
+
include_premium: args.include_premium || false,
|
|
154
|
+
});
|
|
144
155
|
case 'tld_info':
|
|
145
156
|
return (0, index_js_2.executeTldInfo)({
|
|
146
157
|
tld: args.tld,
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;AACA
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Domain Search Service.
|
|
3
3
|
*
|
|
4
4
|
* Orchestrates domain availability checks across multiple sources:
|
|
5
|
-
* 1. Porkbun (primary, if configured)
|
|
6
|
-
* 2. Namecheap (secondary, if configured)
|
|
7
|
-
* 3.
|
|
8
|
-
* 4.
|
|
5
|
+
* 1. Porkbun (primary, if configured - has pricing)
|
|
6
|
+
* 2. Namecheap (secondary, if configured - has pricing)
|
|
7
|
+
* 3. GoDaddy MCP (always available - no auth, no pricing, great availability data)
|
|
8
|
+
* 4. RDAP (fallback, always available)
|
|
9
|
+
* 5. WHOIS (last resort, always available)
|
|
9
10
|
*
|
|
10
11
|
* Handles:
|
|
11
12
|
* - Smart source selection based on availability and configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-search.d.ts","sourceRoot":"","sources":["../../src/services/domain-search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"domain-search.d.ts","sourceRoot":"","sources":["../../src/services/domain-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAyB5E;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAM,EAAyB,EACrC,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,cAAc,CAAC,CAiEzB;AAsVD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,GAAE,MAAc,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,GAAE,MAAU,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC,CA4CzB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,MAAM,EAA6B,GAC9C,OAAO,CAAC;IACT,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CA4DD"}
|