@dakaio/domainscout-mcp 1.4.0 → 1.5.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 +33 -3
- package/dist/constants.js +25 -0
- package/dist/constants.js.map +1 -1
- package/dist/messages/tool.js +8 -1
- package/dist/messages/tool.js.map +1 -1
- package/dist/server/results-ui.js +71 -0
- package/dist/server/results-ui.js.map +1 -0
- package/dist/server/schemas.js +3 -1
- package/dist/server/schemas.js.map +1 -1
- package/dist/server/server.js +19 -6
- package/dist/server/server.js.map +1 -1
- package/dist/server/tool-list.js +1 -0
- package/dist/server/tool-list.js.map +1 -1
- package/package.json +6 -3
- package/ui/logo.png +0 -0
- package/ui/results.css +1452 -0
- package/ui/results.html +18 -0
- package/ui/results.js +2066 -0
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
[](https://www.npmjs.com/package/@dakaio/domainscout-mcp)
|
|
9
9
|
[](LICENSE)
|
|
10
10
|
|
|
11
|
-

|
|
12
12
|
|
|
13
13
|
DomainScout is an MCP server for bulk domain search. Your AI assistant brainstorms hundreds of
|
|
14
14
|
names, and DomainScout checks all of them in one call: which are free, what they cost and where
|
|
@@ -95,6 +95,7 @@ ones. Read-only: it never registers or changes anything.
|
|
|
95
95
|
| `tlds` | string[] | `DOMAINSCOUT_TLDS` (`com,net,ai`) | TLDs for names given without one, e.g. `["com"]` for a long list |
|
|
96
96
|
| `confirm` | boolean | `true` | Confirm free-looking names with registrar APIs, when you set keys |
|
|
97
97
|
| `details` | boolean | `false` | Include the evidence from every source (DNS, RDAP, WHOIS, registrar API) |
|
|
98
|
+
| `saved` | string[] | none | Domains the user saved in the results panel: checked again with the rest and marked `saved`, so they stay through a regenerate |
|
|
98
99
|
|
|
99
100
|
It returns a short text report for the model and the same data as structured content: a summary
|
|
100
101
|
with counts per status, one result per domain (status, note, registration dates, buy links with
|
|
@@ -128,6 +129,33 @@ TAKEN: quillwise.com, quillnest.com, quillflow.com, quillhub.com, quillpad.com,
|
|
|
128
129
|
Ask about a few favourites afterwards and each one gets every registrar's link and price. More
|
|
129
130
|
real output, including the command line and JSON: [examples](examples/README.md).
|
|
130
131
|
|
|
132
|
+
## Results card
|
|
133
|
+
|
|
134
|
+
In clients that support [MCP Apps](https://modelcontextprotocol.io/docs/extensions/apps) (Claude on
|
|
135
|
+
the web and desktop, VS Code, ChatGPT and others), each `check_domains` call shows an interactive
|
|
136
|
+
panel, the same as on [the website](https://domainscout.dakaio.com):
|
|
137
|
+
|
|
138
|
+
- **The free domains** as a price table (domains down the side, registrars across the top, every
|
|
139
|
+
price a link), a list or cards, in a dark or light theme, switched beside the TLD filter.
|
|
140
|
+
The table sorts by any column; a TLD filter narrows every view to one TLD.
|
|
141
|
+
- **Prices** as a range across registrars, with what renewing costs when it differs from the
|
|
142
|
+
first year and what a minimum term costs upfront. Registrars are always in price order,
|
|
143
|
+
cheapest first, the same as in the text report.
|
|
144
|
+
- **Every registrar** for a name under "All registrars" or the table's "N more", each a link.
|
|
145
|
+
- **Save** the names you like and mark the ones to take after as **Similar**, then **Regenerate**:
|
|
146
|
+
the chat brainstorms a new batch like the marked names (or in the same style, when none are
|
|
147
|
+
marked) that leaves out every name checked so far, and the saved domains come along in the
|
|
148
|
+
new check (the `saved` parameter), still marked as saved and listed first. "Saved 3" beside
|
|
149
|
+
Regenerate asks the chat to compare the saved domains; both buttons explain themselves on hover. "Try other TLDs" re-checks the taken
|
|
150
|
+
names elsewhere, and "Compare in chat" asks the chat to pick one of the saved names; it sees
|
|
151
|
+
what you saved. "Download CSV" saves the free domains with prices and links.
|
|
152
|
+
|
|
153
|
+
The panel ships in the package (`ui/`), loads nothing from elsewhere, and uses only what the client
|
|
154
|
+
offers: a client that can't send messages or save files simply doesn't show those buttons. Other
|
|
155
|
+
clients show the text report.
|
|
156
|
+
|
|
157
|
+

|
|
158
|
+
|
|
131
159
|
## How it checks
|
|
132
160
|
|
|
133
161
|
For each domain, in parallel and within polite rate limits:
|
|
@@ -265,10 +293,12 @@ npm run build
|
|
|
265
293
|
| `server.json`, `manifest.json`, `glama.json` | Listings: the MCP Registry, the Claude Desktop extension, Glama |
|
|
266
294
|
|
|
267
295
|
Releases: raise the version in a pull request with `npm run bump patch` (or `minor`, or an exact
|
|
268
|
-
version such as `npm run bump 1.2.0`); it updates `package.json`, `
|
|
296
|
+
version such as `npm run bump 1.2.0`); it updates `package.json`, `npm-shrinkwrap.json`,
|
|
269
297
|
`manifest.json` and `server.json` together. Then run `npm run release` on the merged `main`. It pushes the tag `v<version>`, and
|
|
270
298
|
`.github/workflows/publish.yml` publishes to npm (trusted publishing), creates a GitHub Release
|
|
271
|
-
with the Claude Desktop extension and publishes to the MCP Registry.
|
|
299
|
+
with the Claude Desktop extension and publishes to the MCP Registry. Once the version is on npm,
|
|
300
|
+
`npm run plugin` points the Claude plugin at it, with a lockfile, in a pull request of its own.
|
|
301
|
+
The landing page goes out the
|
|
272
302
|
same way: `npm run bump:site patch` in a pull request, then `npm --prefix site run release`.
|
|
273
303
|
|
|
274
304
|
## License
|
package/dist/constants.js
CHANGED
|
@@ -37,6 +37,29 @@ export const ICON_SIZE_PACKAGED = '128x128';
|
|
|
37
37
|
export const ICON_SIZE_WEBSITE = '512x512';
|
|
38
38
|
/** How the packaged icon is encoded into a data URI. */
|
|
39
39
|
export const ICON_ENCODING = 'base64';
|
|
40
|
+
// ── Results card (MCP Apps) ─────────────────────────────────────────────────
|
|
41
|
+
/** The results card's address, as hosts that support MCP Apps fetch it. */
|
|
42
|
+
export const RESULTS_UI_URI = 'ui://domainscout/results.html';
|
|
43
|
+
/** The resource's name in resources/list. */
|
|
44
|
+
export const RESULTS_UI_NAME = 'results-card';
|
|
45
|
+
/** The resource's title, where a host shows one. */
|
|
46
|
+
export const RESULTS_UI_TITLE = 'DomainScout results';
|
|
47
|
+
/** The type MCP Apps hosts look for: an HTML page that talks to the host. */
|
|
48
|
+
export const RESULTS_UI_MIME_TYPE = 'text/html;profile=mcp-app';
|
|
49
|
+
/** The card's folder in the package, relative to a module one folder below the package root. */
|
|
50
|
+
export const RESULTS_UI_DIR = '../../ui/';
|
|
51
|
+
/** The card's files: the page, and the stylesheet and script inlined into it. */
|
|
52
|
+
export const ResultsUiFile = {
|
|
53
|
+
Page: 'results.html',
|
|
54
|
+
Styles: 'results.css',
|
|
55
|
+
Script: 'results.js',
|
|
56
|
+
Logo: 'logo.png',
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* The key older MCP Apps hosts read for a tool's card. Current ones read `_meta.ui.resourceUri`;
|
|
60
|
+
* the tool sends both.
|
|
61
|
+
*/
|
|
62
|
+
export const LEGACY_RESOURCE_URI_KEY = 'ui/resourceUri';
|
|
40
63
|
// ── Settings ────────────────────────────────────────────────────────────────
|
|
41
64
|
/** Environment variables a user can set in the MCP client config. */
|
|
42
65
|
export const EnvVar = {
|
|
@@ -264,6 +287,8 @@ export const MCP_PROGRESS_METHOD = 'notifications/progress';
|
|
|
264
287
|
export const McpContentType = { Text: 'text' };
|
|
265
288
|
/** Entries accepted in one call before TLDs are added; the domain limit applies after. */
|
|
266
289
|
export const MAX_INPUT_ENTRIES = 1_000;
|
|
290
|
+
/** Saved domains a call may carry along: a shortlist, not a second list of names to check. */
|
|
291
|
+
export const MAX_SAVED_ENTRIES = 100;
|
|
267
292
|
// ── Output ──────────────────────────────────────────────────────────────────
|
|
268
293
|
/** Separators of the text output. */
|
|
269
294
|
export const TextSeparator = {
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/messages/tool.js
CHANGED
|
@@ -7,6 +7,10 @@ export const ToolText = {
|
|
|
7
7
|
ConfirmParam: 'Confirm free-looking domains with registrar APIs, which also reveals premium names and exact prices. ' +
|
|
8
8
|
'Works only when the user has set registrar API keys; on by default. Set false to skip it for large lists.',
|
|
9
9
|
DetailsParam: 'Include the evidence from each source (DNS, RDAP, WHOIS, registrar API) for every domain.',
|
|
10
|
+
SavedParam: 'Domains the user saved in the results panel, e.g. ["acme.com"]. They are checked again with the rest ' +
|
|
11
|
+
'and come back marked saved, so they stay in the results. Pass them whenever the user asks for new names ' +
|
|
12
|
+
'but keeps the ones they saved.',
|
|
13
|
+
SavedInfo: 'The user saved this domain in the results panel',
|
|
10
14
|
AsciiForm: 'ASCII (punycode) form',
|
|
11
15
|
UnicodeForm: 'Unicode form',
|
|
12
16
|
TldsUsed: 'TLDs used for names given without one',
|
|
@@ -47,7 +51,10 @@ line with its cheapest offer; check the user's favourites again to get every reg
|
|
|
47
51
|
How to present the answer: list the free domains with their price and their buy link from this result - a table \
|
|
48
52
|
with a link column works well - so the user can register a name in one click. Keep the links; do not replace \
|
|
49
53
|
them with links of your own. Mention the renewal price when it differs from the first year, and any minimum term. \
|
|
50
|
-
Pass on the NOTES and, when present, the affiliate disclosure line
|
|
54
|
+
Pass on the NOTES and, when present, the affiliate disclosure line.
|
|
55
|
+
|
|
56
|
+
New names on request: when the user asks to regenerate, or for more or similar names, suggest only names that \
|
|
57
|
+
were not checked before, and pass the domains the user saved in \`saved\` so they stay in the results.`;
|
|
51
58
|
/** Describes the `tlds` parameter, including the configured defaults. */
|
|
52
59
|
export const tldsParamText = (defaultTlds) => `TLDs to try for names without one, e.g. ["com", "io", "co.uk"]. Omit to use the defaults (${defaultTlds}); ` +
|
|
53
60
|
`the user can change the defaults with ${EnvVar.Tlds} in the MCP server config.`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/messages/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,kDAAkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,2BAA2B;IAClC,YAAY,EACV,qGAAqG;QACrG,4GAA4G;IAC9G,YAAY,EACV,uGAAuG;QACvG,2GAA2G;IAC7G,YAAY,EACV,2FAA2F;IAC7F,SAAS,EAAE,uBAAuB;IAClC,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,uCAAuC;IACjD,SAAS,EAAE,8DAA8D;IACzE,YAAY,EACV,uFAAuF;CACjF,CAAC;AAEX,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oGAAoG,CAAC;AAEvG,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAU,EAAE,CAC9D,sGAAsG;IACtG,qFAAqF,kBAAkB,GAAG;IAC1G,2CAA2C,WAAW,iDAAiD;IACvG,qGAAqG,CAAC;AAExG,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAU,EAAE,CAAC;;;;;;2FAM2B,WAAW
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/messages/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,kDAAkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,2BAA2B;IAClC,YAAY,EACV,qGAAqG;QACrG,4GAA4G;IAC9G,YAAY,EACV,uGAAuG;QACvG,2GAA2G;IAC7G,YAAY,EACV,2FAA2F;IAC7F,UAAU,EACR,uGAAuG;QACvG,0GAA0G;QAC1G,gCAAgC;IAClC,SAAS,EAAE,iDAAiD;IAC5D,SAAS,EAAE,uBAAuB;IAClC,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,uCAAuC;IACjD,SAAS,EAAE,8DAA8D;IACzE,YAAY,EACV,uFAAuF;CACjF,CAAC;AAEX,+FAA+F;AAC/F,MAAM,CAAC,MAAM,kBAAkB,GAC7B,oGAAoG,CAAC;AAEvG,mDAAmD;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAU,EAAE,CAC9D,sGAAsG;IACtG,qFAAqF,kBAAkB,GAAG;IAC1G,2CAA2C,WAAW,iDAAiD;IACvG,qGAAqG,CAAC;AAExG,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAU,EAAE,CAAC;;;;;;2FAM2B,WAAW;;;;;;;;;;;;;;;;;;;;;;;uGAuBC,CAAC;AAExG,yEAAyE;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAU,EAAE,CAC3D,6FAA6F,WAAW,KAAK;IAC7G,yCAAyC,MAAM,CAAC,IAAI,4BAA4B,CAAC;AAEnF,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,MAAc,EAAU,EAAE,CAAC,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { FILE_ENCODING, ICON_ENCODING, ICON_MIME_TYPE, LEGACY_RESOURCE_URI_KEY, RESULTS_UI_DIR, RESULTS_UI_MIME_TYPE, RESULTS_UI_NAME, RESULTS_UI_TITLE, RESULTS_UI_URI, ResultsUiFile, } from '../constants.js';
|
|
3
|
+
/** The card's folder, found relative to this module both in src/ and in the built dist/. */
|
|
4
|
+
const RESULTS_UI_DIR_URL = new URL(RESULTS_UI_DIR, import.meta.url);
|
|
5
|
+
/** The tags in results.html that the stylesheet and the script take the place of. */
|
|
6
|
+
const STYLESHEET_TAG = `<link rel="stylesheet" href="${ResultsUiFile.Styles}" />`;
|
|
7
|
+
const SCRIPT_TAG = `<script src="${ResultsUiFile.Script}"></script>`;
|
|
8
|
+
/** The attribute in results.html that the logo, as a data URI, takes the place of. */
|
|
9
|
+
const LOGO_ATTRIBUTE = `data-logo="${ResultsUiFile.Logo}"`;
|
|
10
|
+
/** What the results card is, for resources/list. */
|
|
11
|
+
const RESULTS_UI_DESCRIPTION = 'Interactive panel for check_domains results: the free domains with prices and buy buttons.';
|
|
12
|
+
/**
|
|
13
|
+
* What the tool says about its card: hosts that support MCP Apps render it under each call,
|
|
14
|
+
* the others ignore it and show the text report.
|
|
15
|
+
*/
|
|
16
|
+
export const RESULTS_UI_TOOL_META = {
|
|
17
|
+
ui: { resourceUri: RESULTS_UI_URI },
|
|
18
|
+
[LEGACY_RESOURCE_URI_KEY]: RESULTS_UI_URI,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* What the card asks of the host: no border of the host's around it, as the card draws its own.
|
|
22
|
+
* It loads nothing from elsewhere, so the host's default content security policy suits it.
|
|
23
|
+
*/
|
|
24
|
+
const RESULTS_UI_CONTENT_META = { ui: { prefersBorder: false } };
|
|
25
|
+
function readUiFile(name) {
|
|
26
|
+
return readFileSync(new URL(name, RESULTS_UI_DIR_URL), FILE_ENCODING);
|
|
27
|
+
}
|
|
28
|
+
/** The logo as a data URI, so the page shows it without fetching anything. */
|
|
29
|
+
function logoDataUri() {
|
|
30
|
+
const data = readFileSync(new URL(ResultsUiFile.Logo, RESULTS_UI_DIR_URL)).toString(ICON_ENCODING);
|
|
31
|
+
return `data:${ICON_MIME_TYPE};${ICON_ENCODING},${data}`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The card as one self-contained page: results.html with results.css and results.js inlined in
|
|
35
|
+
* place of their tags, and the logo as a data URI. The sources stay separate files, so Biome
|
|
36
|
+
* lints them like the site's. Replacer functions keep "$" in the sources from being read as
|
|
37
|
+
* replacement patterns. A tag that was reworded would leave the page without its styles, script
|
|
38
|
+
* or logo, so that fails loudly.
|
|
39
|
+
*/
|
|
40
|
+
export function resultsPage() {
|
|
41
|
+
const page = readUiFile(ResultsUiFile.Page);
|
|
42
|
+
for (const tag of [STYLESHEET_TAG, SCRIPT_TAG, LOGO_ATTRIBUTE]) {
|
|
43
|
+
if (!page.includes(tag))
|
|
44
|
+
throw new Error(`${ResultsUiFile.Page} lacks ${tag}`);
|
|
45
|
+
}
|
|
46
|
+
const styles = readUiFile(ResultsUiFile.Styles);
|
|
47
|
+
const script = readUiFile(ResultsUiFile.Script);
|
|
48
|
+
const logo = logoDataUri();
|
|
49
|
+
return page
|
|
50
|
+
.replace(LOGO_ATTRIBUTE, () => `data-logo="${logo}"`)
|
|
51
|
+
.replace(STYLESHEET_TAG, () => `<style>\n${styles}</style>`)
|
|
52
|
+
.replace(SCRIPT_TAG, () => `<script>\n${script}</script>`);
|
|
53
|
+
}
|
|
54
|
+
/** Offers the results card as a resource; it is put together when a host asks for it. */
|
|
55
|
+
export function registerResultsUi(server) {
|
|
56
|
+
server.registerResource(RESULTS_UI_NAME, RESULTS_UI_URI, {
|
|
57
|
+
title: RESULTS_UI_TITLE,
|
|
58
|
+
description: RESULTS_UI_DESCRIPTION,
|
|
59
|
+
mimeType: RESULTS_UI_MIME_TYPE,
|
|
60
|
+
}, () => ({
|
|
61
|
+
contents: [
|
|
62
|
+
{
|
|
63
|
+
uri: RESULTS_UI_URI,
|
|
64
|
+
mimeType: RESULTS_UI_MIME_TYPE,
|
|
65
|
+
text: resultsPage(),
|
|
66
|
+
_meta: RESULTS_UI_CONTENT_META,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=results-ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results-ui.js","sourceRoot":"","sources":["../../src/server/results-ui.ts"],"names":[],"mappings":"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"}
|
package/dist/server/schemas.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { MAX_INPUT_ENTRIES } from '../constants.js';
|
|
2
|
+
import { MAX_INPUT_ENTRIES, MAX_SAVED_ENTRIES } from '../constants.js';
|
|
3
3
|
import { ConfirmState, DnsState, DomainStatus, EvidenceSource, LookupState, } from '../core/types.js';
|
|
4
4
|
import { ToolText, tldsParamText, toolDescription } from '../messages/index.js';
|
|
5
5
|
/** A price, as in the Price type. */
|
|
@@ -49,6 +49,7 @@ const resultSchema = z.object({
|
|
|
49
49
|
registration: registrationSchema.optional(),
|
|
50
50
|
buy: z.array(buyLinkSchema).optional(),
|
|
51
51
|
evidence: z.array(evidenceSchema).optional(),
|
|
52
|
+
saved: z.boolean().optional().describe(ToolText.SavedInfo),
|
|
52
53
|
});
|
|
53
54
|
/** Counts per status, the total and the elapsed time, as in the Summary type. */
|
|
54
55
|
const summarySchema = z.object({
|
|
@@ -68,6 +69,7 @@ export function checkDomainsTool(defaultTlds) {
|
|
|
68
69
|
tlds: z.array(z.string()).optional().describe(tldsParamText(defaultTlds)),
|
|
69
70
|
confirm: z.boolean().optional().describe(ToolText.ConfirmParam),
|
|
70
71
|
details: z.boolean().optional().describe(ToolText.DetailsParam),
|
|
72
|
+
saved: z.array(z.string()).max(MAX_SAVED_ENTRIES).optional().describe(ToolText.SavedParam),
|
|
71
73
|
},
|
|
72
74
|
outputSchema: {
|
|
73
75
|
summary: summarySchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/server/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/server/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEhF,qCAAqC;AACrC,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEhC,0CAA0C;AAC1C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,wDAAwD;AACxD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAEH,sDAAsD;AACtD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;IAC5C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;CAC3D,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAEH,oDAAoD;AACpD,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE/E,0FAA0F;AAC1F,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC;QACzC,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC1F,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC/D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC/D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC;SAC3F;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;YAC9B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACpC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC7D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAClC;QACD,0FAA0F;QAC1F,+DAA+D;QAC/D,WAAW,EAAE;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;KACF,CAAC;AACJ,CAAC"}
|
package/dist/server/server.js
CHANGED
|
@@ -6,6 +6,7 @@ import { AFFILIATE_DISCLOSURE, CliLine, progressText, toolInstructions, } from '
|
|
|
6
6
|
import { hasAffiliateLinks, rejectionText, summarize } from '../report/summary.js';
|
|
7
7
|
import { TextReport } from '../report/text-report.js';
|
|
8
8
|
import { DomainScout } from '../scout/domain-scout.js';
|
|
9
|
+
import { RESULTS_UI_TOOL_META, registerResultsUi } from './results-ui.js';
|
|
9
10
|
import { checkDomainsTool } from './schemas.js';
|
|
10
11
|
import { serverInfo } from './server-info.js';
|
|
11
12
|
import { listToolsWithPlainSchemas } from './tool-list.js';
|
|
@@ -14,14 +15,17 @@ export function createServer(config, services = {}) {
|
|
|
14
15
|
const scout = new DomainScout(config, services);
|
|
15
16
|
const defaultTlds = config.defaultTlds.join(TextSeparator.List);
|
|
16
17
|
const server = new McpServer(serverInfo(), { instructions: toolInstructions(defaultTlds) });
|
|
17
|
-
const tool = checkDomainsTool(defaultTlds);
|
|
18
|
+
const tool = { ...checkDomainsTool(defaultTlds), _meta: RESULTS_UI_TOOL_META };
|
|
19
|
+
registerResultsUi(server);
|
|
18
20
|
server.registerTool(TOOL_CHECK_DOMAINS, tool, async (input, extra) => {
|
|
19
|
-
const { domains, tlds, confirm, details = false } = input;
|
|
21
|
+
const { domains, tlds, confirm, details = false, saved = [] } = input;
|
|
20
22
|
const options = { signal: extra.signal, onProgress: progressReporter(extra) };
|
|
21
|
-
|
|
23
|
+
// Saved domains are checked again with the rest: one may have been bought in the meantime.
|
|
24
|
+
const all = [...domains, ...saved];
|
|
25
|
+
const outcome = await scout.check({ domains: all, tlds, confirm }, options);
|
|
22
26
|
if (!outcome.ok)
|
|
23
27
|
return errorResult(rejectionText(outcome.message, outcome.invalid));
|
|
24
|
-
return reportResult(outcome.report, details);
|
|
28
|
+
return reportResult(outcome.report, details, savedKeys(saved));
|
|
25
29
|
});
|
|
26
30
|
listToolsWithPlainSchemas(server, [{ name: TOOL_CHECK_DOMAINS, ...tool }]);
|
|
27
31
|
return server;
|
|
@@ -35,19 +39,28 @@ export async function startServer(config, transport = new StdioServerTransport()
|
|
|
35
39
|
console.error(CliLine.log(CliLine.ready(VERSION, defaultTlds)));
|
|
36
40
|
}
|
|
37
41
|
/** The report as text for the model, and as structured content that matches the output schema. */
|
|
38
|
-
function reportResult(report, details) {
|
|
42
|
+
function reportResult(report, details, saved) {
|
|
43
|
+
const answer = (result) => (details ? result : withoutEvidence(result));
|
|
39
44
|
return {
|
|
40
45
|
content: [{ type: McpContentType.Text, text: new TextReport(report).render() }],
|
|
41
46
|
structuredContent: {
|
|
42
47
|
summary: summarize(report),
|
|
43
48
|
tlds: report.tlds,
|
|
44
|
-
results: report.results.map((result) => (
|
|
49
|
+
results: report.results.map((result) => isSaved(result, saved) ? { ...answer(result), saved: true } : answer(result)),
|
|
45
50
|
invalid: report.invalid,
|
|
46
51
|
warnings: report.warnings,
|
|
47
52
|
...(hasAffiliateLinks(report) && { disclosure: AFFILIATE_DISCLOSURE }),
|
|
48
53
|
},
|
|
49
54
|
};
|
|
50
55
|
}
|
|
56
|
+
/** The saved domains as the forms a result may carry: lower case, trimmed. */
|
|
57
|
+
function savedKeys(saved) {
|
|
58
|
+
return new Set(saved.map((entry) => entry.trim().toLowerCase()));
|
|
59
|
+
}
|
|
60
|
+
/** Whether a result is one of the saved domains, by its ASCII form, its Unicode form or its input. */
|
|
61
|
+
function isSaved(result, saved) {
|
|
62
|
+
return [result.domain, result.display, result.input].some((form) => saved.has(form.toLowerCase()));
|
|
63
|
+
}
|
|
51
64
|
/** A rejected call. Output validation does not apply to errors. */
|
|
52
65
|
function errorResult(text) {
|
|
53
66
|
return { isError: true, content: [{ type: McpContentType.Text, text }] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AASjF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,YAAY,EACZ,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAK3D,uDAAuD;AACvD,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,QAAQ,GAA2B,EAAE;IAChF,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5F,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/tool-list.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-list.js","sourceRoot":"","sources":["../../src/server/tool-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAa,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAoB,CAAC,EAAE,MAAM,KAAK,CAAC;AAE1C,kDAAkD;AAClD,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,mFAAmF;AACnF,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AACX,gFAAgF;AAChF,MAAM,SAAS,GAAsB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-list.js","sourceRoot":"","sources":["../../src/server/tool-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAa,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAoB,CAAC,EAAE,MAAM,KAAK,CAAC;AAE1C,kDAAkD;AAClD,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,mFAAmF;AACnF,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AACX,gFAAgF;AAChF,MAAM,SAAS,GAAsB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAclE;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAkB,EAAE,EAA4C;IACvF,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvF,OAAO,MAA6B,CAAC;AACvC,CAAC;AAED,yCAAyC;AACzC,SAAS,cAAc,CAAC,IAAgB;IACtC,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC;QAC9D,YAAY,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;QACjE,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,KAA4B;IACvF,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dakaio/domainscout-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Domain research for AI agents: an MCP server that checks hundreds of domain names in one call (DNS, RDAP, WHOIS) and shows prices and where to buy.",
|
|
5
5
|
"mcpName": "com.dakaio/domainscout",
|
|
6
6
|
"author": "dakaio.com",
|
|
@@ -19,8 +19,10 @@
|
|
|
19
19
|
"files": [
|
|
20
20
|
"dist",
|
|
21
21
|
"assets/icon-128.png",
|
|
22
|
+
"ui",
|
|
22
23
|
"README.md",
|
|
23
|
-
"LICENSE"
|
|
24
|
+
"LICENSE",
|
|
25
|
+
"npm-shrinkwrap.json"
|
|
24
26
|
],
|
|
25
27
|
"publishConfig": {
|
|
26
28
|
"access": "public"
|
|
@@ -41,7 +43,8 @@
|
|
|
41
43
|
"prepublishOnly": "npm run verify && npm run build",
|
|
42
44
|
"bump": "npm version --no-git-tag-version",
|
|
43
45
|
"bump:site": "npm --prefix site version --no-git-tag-version",
|
|
44
|
-
"version": "node scripts/sync-version.mjs && biome format --write manifest.json server.json
|
|
46
|
+
"version": "node scripts/sync-version.mjs && biome format --write manifest.json server.json",
|
|
47
|
+
"plugin": "node scripts/sync-plugin.mjs && biome format --write plugin/.claude-plugin/plugin.json plugin/.mcp.json plugin/package.json",
|
|
45
48
|
"release": "node scripts/release.mjs"
|
|
46
49
|
},
|
|
47
50
|
"engines": {
|
package/ui/logo.png
ADDED
|
Binary file
|