@cyanheads/whois-mcp-server 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.
Files changed (61) hide show
  1. package/AGENTS.md +349 -0
  2. package/CLAUDE.md +349 -0
  3. package/Dockerfile +99 -0
  4. package/LICENSE +201 -0
  5. package/README.md +316 -0
  6. package/changelog/0.1.x/0.1.1.md +32 -0
  7. package/changelog/template.md +127 -0
  8. package/dist/config/server-config.d.ts +16 -0
  9. package/dist/config/server-config.d.ts.map +1 -0
  10. package/dist/config/server-config.js +30 -0
  11. package/dist/config/server-config.js.map +1 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +38 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/mcp-server/tools/definitions/_fqdn.d.ts +7 -0
  17. package/dist/mcp-server/tools/definitions/_fqdn.d.ts.map +1 -0
  18. package/dist/mcp-server/tools/definitions/_fqdn.js +18 -0
  19. package/dist/mcp-server/tools/definitions/_fqdn.js.map +1 -0
  20. package/dist/mcp-server/tools/definitions/whois-check-availability.tool.d.ts +26 -0
  21. package/dist/mcp-server/tools/definitions/whois-check-availability.tool.d.ts.map +1 -0
  22. package/dist/mcp-server/tools/definitions/whois-check-availability.tool.js +102 -0
  23. package/dist/mcp-server/tools/definitions/whois-check-availability.tool.js.map +1 -0
  24. package/dist/mcp-server/tools/definitions/whois-get-dns.tool.d.ts +49 -0
  25. package/dist/mcp-server/tools/definitions/whois-get-dns.tool.d.ts.map +1 -0
  26. package/dist/mcp-server/tools/definitions/whois-get-dns.tool.js +97 -0
  27. package/dist/mcp-server/tools/definitions/whois-get-dns.tool.js.map +1 -0
  28. package/dist/mcp-server/tools/definitions/whois-get-dossier.tool.d.ts +41 -0
  29. package/dist/mcp-server/tools/definitions/whois-get-dossier.tool.d.ts.map +1 -0
  30. package/dist/mcp-server/tools/definitions/whois-get-dossier.tool.js +332 -0
  31. package/dist/mcp-server/tools/definitions/whois-get-dossier.tool.js.map +1 -0
  32. package/dist/mcp-server/tools/definitions/whois-lookup-asn.tool.d.ts +30 -0
  33. package/dist/mcp-server/tools/definitions/whois-lookup-asn.tool.d.ts.map +1 -0
  34. package/dist/mcp-server/tools/definitions/whois-lookup-asn.tool.js +83 -0
  35. package/dist/mcp-server/tools/definitions/whois-lookup-asn.tool.js.map +1 -0
  36. package/dist/mcp-server/tools/definitions/whois-lookup-domain.tool.d.ts +40 -0
  37. package/dist/mcp-server/tools/definitions/whois-lookup-domain.tool.d.ts.map +1 -0
  38. package/dist/mcp-server/tools/definitions/whois-lookup-domain.tool.js +124 -0
  39. package/dist/mcp-server/tools/definitions/whois-lookup-domain.tool.js.map +1 -0
  40. package/dist/mcp-server/tools/definitions/whois-lookup-ip.tool.d.ts +39 -0
  41. package/dist/mcp-server/tools/definitions/whois-lookup-ip.tool.d.ts.map +1 -0
  42. package/dist/mcp-server/tools/definitions/whois-lookup-ip.tool.js +111 -0
  43. package/dist/mcp-server/tools/definitions/whois-lookup-ip.tool.js.map +1 -0
  44. package/dist/services/doh/doh-service.d.ts +30 -0
  45. package/dist/services/doh/doh-service.d.ts.map +1 -0
  46. package/dist/services/doh/doh-service.js +114 -0
  47. package/dist/services/doh/doh-service.js.map +1 -0
  48. package/dist/services/doh/types.d.ts +45 -0
  49. package/dist/services/doh/types.d.ts.map +1 -0
  50. package/dist/services/doh/types.js +17 -0
  51. package/dist/services/doh/types.js.map +1 -0
  52. package/dist/services/rdap/rdap-service.d.ts +54 -0
  53. package/dist/services/rdap/rdap-service.d.ts.map +1 -0
  54. package/dist/services/rdap/rdap-service.js +609 -0
  55. package/dist/services/rdap/rdap-service.js.map +1 -0
  56. package/dist/services/rdap/types.d.ts +140 -0
  57. package/dist/services/rdap/types.d.ts.map +1 -0
  58. package/dist/services/rdap/types.js +6 -0
  59. package/dist/services/rdap/types.js.map +1 -0
  60. package/package.json +103 -0
  61. package/server.json +161 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * @fileoverview RDAP service domain types — raw upstream shapes and normalized outputs.
3
+ * @module services/rdap/types
4
+ */
5
+ /** vCard array as returned by RDAP (RFC 6350 format) */
6
+ export type VCard = [string, unknown][];
7
+ /** Raw RDAP entity object */
8
+ export interface RdapEntity {
9
+ entities?: RdapEntity[];
10
+ handle?: string;
11
+ objectClassName?: string;
12
+ publicIds?: Array<{
13
+ type: string;
14
+ identifier: string;
15
+ }>;
16
+ roles?: string[];
17
+ vcardArray?: ['vcard', VCard];
18
+ }
19
+ /** Raw RDAP event object */
20
+ export interface RdapEvent {
21
+ eventAction: string;
22
+ eventDate: string;
23
+ }
24
+ /** Raw RDAP nameserver object */
25
+ export interface RdapNameserver {
26
+ ldhName?: string;
27
+ unicodeName?: string;
28
+ }
29
+ /** Raw RDAP link object */
30
+ export interface RdapLink {
31
+ href?: string;
32
+ rel?: string;
33
+ type?: string;
34
+ }
35
+ /** Raw RDAP domain response */
36
+ export interface RdapDomainRaw {
37
+ entities?: RdapEntity[];
38
+ events?: RdapEvent[];
39
+ handle?: string;
40
+ ldhName?: string;
41
+ links?: RdapLink[];
42
+ nameservers?: RdapNameserver[];
43
+ objectClassName?: string;
44
+ port43?: string;
45
+ remarks?: Array<{
46
+ description: string[];
47
+ }>;
48
+ secureDNS?: {
49
+ delegationSigned?: boolean;
50
+ zoneSigned?: boolean;
51
+ };
52
+ status?: string[];
53
+ unicodeName?: string;
54
+ }
55
+ /** Raw RDAP IP network response */
56
+ export interface RdapIpNetworkRaw {
57
+ cidr0_cidrs?: Array<{
58
+ v4prefix?: string;
59
+ v6prefix?: string;
60
+ length?: number;
61
+ }>;
62
+ country?: string;
63
+ endAddress?: string;
64
+ entities?: RdapEntity[];
65
+ events?: RdapEvent[];
66
+ handle?: string;
67
+ ipVersion?: string;
68
+ links?: RdapLink[];
69
+ name?: string;
70
+ objectClassName?: string;
71
+ parentHandle?: string;
72
+ startAddress?: string;
73
+ type?: string;
74
+ }
75
+ /** Raw RDAP autnum (ASN) response */
76
+ export interface RdapAutnumRaw {
77
+ country?: string;
78
+ endAutnum?: number;
79
+ entities?: RdapEntity[];
80
+ events?: RdapEvent[];
81
+ handle?: string;
82
+ links?: RdapLink[];
83
+ name?: string;
84
+ objectClassName?: string;
85
+ startAutnum?: number;
86
+ type?: string;
87
+ }
88
+ /** IANA Bootstrap JSON format */
89
+ export interface IanaBootstrap {
90
+ publication: string;
91
+ services: Array<[string[], string[]]>;
92
+ version: string;
93
+ }
94
+ /** Normalized domain registration record */
95
+ export interface NormalizedDomain {
96
+ created_date?: string;
97
+ dnssec_signed: boolean;
98
+ domain: string;
99
+ expiry_date?: string;
100
+ handle?: string;
101
+ nameservers: string[];
102
+ rdap_coverage: boolean;
103
+ rdap_last_updated?: string;
104
+ registrant_org?: string;
105
+ registrant_redacted: boolean;
106
+ registrar?: string;
107
+ registrar_iana_id?: string;
108
+ status: string[];
109
+ updated_date?: string;
110
+ }
111
+ /** Normalized IP network record */
112
+ export interface NormalizedIpNetwork {
113
+ abuse_email?: string;
114
+ cidr?: string;
115
+ country?: string;
116
+ end_address?: string;
117
+ handle?: string;
118
+ ip: string;
119
+ ip_version?: string;
120
+ name?: string;
121
+ org_name?: string;
122
+ /** Reverse DNS hostname, null when PTR lookup fails or returns nothing. */
123
+ ptr: string | null;
124
+ rdap_source?: string;
125
+ start_address?: string;
126
+ type?: string;
127
+ }
128
+ /** Normalized ASN record */
129
+ export interface NormalizedAsn {
130
+ asn: string;
131
+ country?: string;
132
+ end_autnum?: number;
133
+ handle?: string;
134
+ name?: string;
135
+ org_name?: string;
136
+ rir?: string;
137
+ start_autnum?: number;
138
+ type?: string;
139
+ }
140
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/rdap/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview RDAP service domain types — raw upstream shapes and normalized outputs.
3
+ * @module services/rdap/types
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/rdap/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/package.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "@cyanheads/whois-mcp-server",
3
+ "version": "0.1.1",
4
+ "mcpName": "io.github.cyanheads/whois-mcp-server",
5
+ "description": "Look up domain registration, check availability, fetch DNS records, and resolve IPs and ASNs via RDAP and DNS-over-HTTPS via MCP. STDIO or Streamable HTTP.",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "bin": {
10
+ "whois-mcp-server": "dist/index.js"
11
+ },
12
+ "files": [
13
+ "changelog/",
14
+ "dist/",
15
+ "README.md",
16
+ "LICENSE",
17
+ "CLAUDE.md",
18
+ "AGENTS.md",
19
+ "Dockerfile",
20
+ "server.json"
21
+ ],
22
+ "scripts": {
23
+ "build": "bun run scripts/build.ts",
24
+ "rebuild": "bun run scripts/clean.ts && bun run scripts/build.ts",
25
+ "clean": "bun run scripts/clean.ts",
26
+ "devcheck": "bun run scripts/devcheck.ts",
27
+ "audit:refresh": "rm -f bun.lock && bun install && bun audit",
28
+ "tree": "bun run scripts/tree.ts",
29
+ "list-skills": "bun run scripts/list-skills.ts",
30
+ "format": "biome check --write .",
31
+ "format:unsafe": "biome check --write --unsafe .",
32
+ "lint:mcp": "bun run scripts/lint-mcp.ts",
33
+ "lint:packaging": "bun run scripts/lint-packaging.ts",
34
+ "bundle": "npm run build && npx -y @anthropic-ai/mcpb pack . dist/whois-mcp-server.mcpb",
35
+ "changelog:build": "bun run scripts/build-changelog.ts",
36
+ "changelog:check": "bun run scripts/build-changelog.ts --check",
37
+ "release:github": "bun run scripts/release-github.ts",
38
+ "publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish",
39
+ "test": "vitest run",
40
+ "start": "node dist/index.js",
41
+ "start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
42
+ "start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js"
43
+ },
44
+ "keywords": [
45
+ "whois",
46
+ "rdap",
47
+ "dns",
48
+ "domain",
49
+ "ip",
50
+ "asn",
51
+ "dns-over-https",
52
+ "mcp",
53
+ "mcp-server",
54
+ "model-context-protocol",
55
+ "typescript",
56
+ "bun",
57
+ "stdio",
58
+ "streamable-http",
59
+ "ai-agent"
60
+ ],
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "git+https://github.com/cyanheads/whois-mcp-server.git"
64
+ },
65
+ "bugs": {
66
+ "url": "https://github.com/cyanheads/whois-mcp-server/issues"
67
+ },
68
+ "homepage": "https://github.com/cyanheads/whois-mcp-server#readme",
69
+ "author": "cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/whois-mcp-server#readme)",
70
+ "funding": [
71
+ {
72
+ "type": "github",
73
+ "url": "https://github.com/sponsors/cyanheads"
74
+ },
75
+ {
76
+ "type": "buy_me_a_coffee",
77
+ "url": "https://www.buymeacoffee.com/cyanheads"
78
+ }
79
+ ],
80
+ "license": "Apache-2.0",
81
+ "packageManager": "bun@1.3.11",
82
+ "engines": {
83
+ "bun": ">=1.3.0",
84
+ "node": ">=24.0.0"
85
+ },
86
+ "publishConfig": {
87
+ "access": "public"
88
+ },
89
+ "dependencies": {
90
+ "@cyanheads/mcp-ts-core": "^0.9.21",
91
+ "pino-pretty": "^13.1.3",
92
+ "zod": "^4.4.3"
93
+ },
94
+ "devDependencies": {
95
+ "@biomejs/biome": "^2.4.16",
96
+ "@types/node": "^25.9.1",
97
+ "depcheck": "^1.4.7",
98
+ "ignore": "^7.0.5",
99
+ "tsc-alias": "^1.8.17",
100
+ "typescript": "^6.0.3",
101
+ "vitest": "^4.1.8"
102
+ }
103
+ }
package/server.json ADDED
@@ -0,0 +1,161 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.cyanheads/whois-mcp-server",
4
+ "description": "Domain registration, availability, DNS records, and IP/ASN resolution via RDAP and DNS-over-HTTPS.",
5
+ "repository": {
6
+ "url": "https://github.com/cyanheads/whois-mcp-server",
7
+ "source": "github"
8
+ },
9
+ "version": "0.1.1",
10
+ "packages": [
11
+ {
12
+ "registryType": "npm",
13
+ "registryBaseUrl": "https://registry.npmjs.org",
14
+ "identifier": "@cyanheads/whois-mcp-server",
15
+ "runtimeHint": "bun",
16
+ "version": "0.1.1",
17
+ "packageArguments": [
18
+ {
19
+ "type": "positional",
20
+ "value": "run"
21
+ },
22
+ {
23
+ "type": "positional",
24
+ "value": "start:stdio"
25
+ }
26
+ ],
27
+ "environmentVariables": [
28
+ {
29
+ "name": "MCP_LOG_LEVEL",
30
+ "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
31
+ "format": "string",
32
+ "isRequired": false,
33
+ "default": "info"
34
+ },
35
+ {
36
+ "name": "RDAP_TIMEOUT_MS",
37
+ "description": "HTTP timeout for RDAP requests in milliseconds.",
38
+ "format": "string",
39
+ "isRequired": false,
40
+ "default": "5000"
41
+ },
42
+ {
43
+ "name": "DOH_TIMEOUT_MS",
44
+ "description": "HTTP timeout for DNS-over-HTTPS requests in milliseconds.",
45
+ "format": "string",
46
+ "isRequired": false,
47
+ "default": "3000"
48
+ },
49
+ {
50
+ "name": "RDAP_MAX_RETRIES",
51
+ "description": "Max retry attempts on transient RDAP failures.",
52
+ "format": "string",
53
+ "isRequired": false,
54
+ "default": "2"
55
+ },
56
+ {
57
+ "name": "DOH_MAX_RETRIES",
58
+ "description": "Max retry attempts on transient DNS-over-HTTPS failures.",
59
+ "format": "string",
60
+ "isRequired": false,
61
+ "default": "2"
62
+ }
63
+ ],
64
+ "transport": {
65
+ "type": "stdio"
66
+ }
67
+ },
68
+ {
69
+ "registryType": "npm",
70
+ "registryBaseUrl": "https://registry.npmjs.org",
71
+ "identifier": "@cyanheads/whois-mcp-server",
72
+ "runtimeHint": "bun",
73
+ "version": "0.1.1",
74
+ "packageArguments": [
75
+ {
76
+ "type": "positional",
77
+ "value": "run"
78
+ },
79
+ {
80
+ "type": "positional",
81
+ "value": "start:http"
82
+ }
83
+ ],
84
+ "environmentVariables": [
85
+ {
86
+ "name": "MCP_HTTP_HOST",
87
+ "description": "The hostname for the HTTP server.",
88
+ "format": "string",
89
+ "isRequired": false,
90
+ "default": "127.0.0.1"
91
+ },
92
+ {
93
+ "name": "MCP_HTTP_PORT",
94
+ "description": "The port to run the HTTP server on.",
95
+ "format": "string",
96
+ "isRequired": false,
97
+ "default": "3010"
98
+ },
99
+ {
100
+ "name": "MCP_HTTP_ENDPOINT_PATH",
101
+ "description": "The endpoint path for the MCP server.",
102
+ "format": "string",
103
+ "isRequired": false,
104
+ "default": "/mcp"
105
+ },
106
+ {
107
+ "name": "MCP_PUBLIC_URL",
108
+ "description": "Public origin override for deployments behind a TLS-terminating reverse proxy (e.g. https://mcp.example.com).",
109
+ "format": "string",
110
+ "isRequired": false
111
+ },
112
+ {
113
+ "name": "MCP_AUTH_MODE",
114
+ "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'.",
115
+ "format": "string",
116
+ "isRequired": false,
117
+ "default": "none"
118
+ },
119
+ {
120
+ "name": "MCP_LOG_LEVEL",
121
+ "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
122
+ "format": "string",
123
+ "isRequired": false,
124
+ "default": "info"
125
+ },
126
+ {
127
+ "name": "RDAP_TIMEOUT_MS",
128
+ "description": "HTTP timeout for RDAP requests in milliseconds.",
129
+ "format": "string",
130
+ "isRequired": false,
131
+ "default": "5000"
132
+ },
133
+ {
134
+ "name": "DOH_TIMEOUT_MS",
135
+ "description": "HTTP timeout for DNS-over-HTTPS requests in milliseconds.",
136
+ "format": "string",
137
+ "isRequired": false,
138
+ "default": "3000"
139
+ },
140
+ {
141
+ "name": "RDAP_MAX_RETRIES",
142
+ "description": "Max retry attempts on transient RDAP failures.",
143
+ "format": "string",
144
+ "isRequired": false,
145
+ "default": "2"
146
+ },
147
+ {
148
+ "name": "DOH_MAX_RETRIES",
149
+ "description": "Max retry attempts on transient DNS-over-HTTPS failures.",
150
+ "format": "string",
151
+ "isRequired": false,
152
+ "default": "2"
153
+ }
154
+ ],
155
+ "transport": {
156
+ "type": "streamable-http",
157
+ "url": "http://localhost:3010/mcp"
158
+ }
159
+ }
160
+ ]
161
+ }