@dakaio/domainscout-mcp 1.3.0 → 1.4.0
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/dist/server/server.js
CHANGED
|
@@ -8,12 +8,14 @@ import { TextReport } from '../report/text-report.js';
|
|
|
8
8
|
import { DomainScout } from '../scout/domain-scout.js';
|
|
9
9
|
import { checkDomainsTool } from './schemas.js';
|
|
10
10
|
import { serverInfo } from './server-info.js';
|
|
11
|
+
import { listToolsWithPlainSchemas } from './tool-list.js';
|
|
11
12
|
/** The MCP server with its one tool, check_domains. */
|
|
12
13
|
export function createServer(config, services = {}) {
|
|
13
14
|
const scout = new DomainScout(config, services);
|
|
14
15
|
const defaultTlds = config.defaultTlds.join(TextSeparator.List);
|
|
15
16
|
const server = new McpServer(serverInfo(), { instructions: toolInstructions(defaultTlds) });
|
|
16
|
-
|
|
17
|
+
const tool = checkDomainsTool(defaultTlds);
|
|
18
|
+
server.registerTool(TOOL_CHECK_DOMAINS, tool, async (input, extra) => {
|
|
17
19
|
const { domains, tlds, confirm, details = false } = input;
|
|
18
20
|
const options = { signal: extra.signal, onProgress: progressReporter(extra) };
|
|
19
21
|
const outcome = await scout.check({ domains, tlds, confirm }, options);
|
|
@@ -21,6 +23,7 @@ export function createServer(config, services = {}) {
|
|
|
21
23
|
return errorResult(rejectionText(outcome.message, outcome.invalid));
|
|
22
24
|
return reportResult(outcome.report, details);
|
|
23
25
|
});
|
|
26
|
+
listToolsWithPlainSchemas(server, [{ name: TOOL_CHECK_DOMAINS, ...tool }]);
|
|
24
27
|
return server;
|
|
25
28
|
}
|
|
26
29
|
/** Serves MCP over stdio (or the given transport). Logs go to stderr: stdout belongs to the protocol. */
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
/** The key that names a JSON Schema's dialect. */
|
|
4
|
+
const DIALECT_KEY = '$schema';
|
|
5
|
+
/** What a schema describes: the arguments a tool takes, or the result it gives. */
|
|
6
|
+
const SchemaIo = {
|
|
7
|
+
Input: 'input',
|
|
8
|
+
Output: 'output',
|
|
9
|
+
};
|
|
10
|
+
/** The tool runs as a plain call, never as an MCP task: as the SDK lists it. */
|
|
11
|
+
const EXECUTION = { taskSupport: 'forbidden' };
|
|
12
|
+
/**
|
|
13
|
+
* A shape as JSON Schema with no "$schema" key. The SDK marks every schema draft-07, and clients
|
|
14
|
+
* that follow MCP's default, 2020-12, refuse a tool whose schema names another dialect. Ours mean
|
|
15
|
+
* the same in both, so without the key every client reads them in its own default.
|
|
16
|
+
*/
|
|
17
|
+
function plainJsonSchema(shape, io) {
|
|
18
|
+
const { [DIALECT_KEY]: _dialect, ...schema } = z.toJSONSchema(z.object(shape), { io });
|
|
19
|
+
return schema;
|
|
20
|
+
}
|
|
21
|
+
/** A tool as tools/list describes it. */
|
|
22
|
+
function toolDefinition(tool) {
|
|
23
|
+
return {
|
|
24
|
+
name: tool.name,
|
|
25
|
+
title: tool.title,
|
|
26
|
+
description: tool.description,
|
|
27
|
+
inputSchema: plainJsonSchema(tool.inputSchema, SchemaIo.Input),
|
|
28
|
+
outputSchema: plainJsonSchema(tool.outputSchema, SchemaIo.Output),
|
|
29
|
+
annotations: tool.annotations,
|
|
30
|
+
execution: EXECUTION,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Answers tools/list in place of the SDK's handler, with schemas every client accepts. Calls still
|
|
35
|
+
* go through the SDK, which checks the arguments and the result against the same Zod shapes.
|
|
36
|
+
*/
|
|
37
|
+
export function listToolsWithPlainSchemas(server, tools) {
|
|
38
|
+
const definitions = tools.map(toolDefinition);
|
|
39
|
+
server.server.setRequestHandler(ListToolsRequestSchema, () => ({ tools: definitions }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=tool-list.js.map
|
|
@@ -0,0 +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;AAYlE;;;;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;KACrB,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.4.0",
|
|
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",
|