-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathrecords.ts
More file actions
120 lines (107 loc) · 5.86 KB
/
Copy pathrecords.ts
File metadata and controls
120 lines (107 loc) · 5.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import type { RecordType } from './utils';
export const DNS_RECORDS: Record<string, DnsRecordConfig[]> = {
'modelcontextprotocol.io': [
// Root domain
{ subdomain: '@', type: 'A', content: '76.76.21.21' },
// Spec subdomain
{ subdomain: 'spec', type: 'A', content: '76.76.21.21' },
// Registry
{ subdomain: 'registry', type: 'CNAME', content: 'prod.registry.modelcontextprotocol.io' },
{ subdomain: 'prod.registry', type: 'A', content: '34.61.200.254' },
{ subdomain: 'staging.registry', type: 'A', content: '35.222.36.75' },
{ subdomain: 'grafana.prod.registry', type: 'A', content: '34.61.200.254' },
{ subdomain: 'grafana.staging.registry', type: 'A', content: '35.222.36.75' },
// GitHub Pages sites
{ subdomain: 'blog', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'example-client', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'maintainers', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'static', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'apps.extensions', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'ts.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'csharp.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'go.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'py.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'java.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'kotlin.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'rust.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'php.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
{ subdomain: 'ruby.sdk', type: 'CNAME', content: 'modelcontextprotocol.github.io' },
// Other subdomains
{ subdomain: 'example-server', type: 'CNAME', content: 'ghs.googlehosted.com' },
{ subdomain: 'meet', type: 'CNAME', content: 'mcp.meetable.org' },
// MCP Tasks Extension docs, hosted on Cloudflare Pages (modelcontextprotocol/ext-tasks)
{ subdomain: 'tasks.extensions', type: 'CNAME', content: 'ext-tasks.pages.dev' },
// guildbridge.modelcontextprotocol.io is managed by a Worker Custom Domain binding
// (read-only record, not manageable via DnsRecord)
// MX record for Google Workspace
{ subdomain: '@', type: 'MX', content: 'smtp.google.com', priority: 1 },
// SPF record
{ subdomain: '@', type: 'TXT', content: 'v=spf1 include:_spf.google.com ~all' },
// DKIM for Google Workspace
{
subdomain: 'google._domainkey',
type: 'TXT',
content:
'v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtwBNpASgdq3T9tXSFRh3tu9s6bLVBeGtug5Tv5f5D9K2G8n3Ov7KgR8IEyIgWaVuFf+z82NUBtXlDfKRxRu6s9ND+SqPkgVey2IVx4VuHHUJMAC1f4Wst7ZAUmyeo9lf6PpPb7xzr4nSVbN9jbIFDAajsCe+M9TYdkIU9PXdraYpIVc6b+vE7EaiaCdXNWHzIVjo4wFBz4UsNKG1UsO53GZNyXfnxFFPQppaNYEXOfblYtxgW4BhKpBQhT9fC07EKyoUApe2AC8rcX83HBOKKvISR6TbMruv5p82lz1veIcpixRkZfIFDlxMF66yzFs5qdfY8ztRHbri4kw4DVygmwIDAQAB',
},
// DMARC
{
subdomain: '_dmarc',
type: 'TXT',
content: 'v=DMARC1; p=none',
},
// Google site verifications
{
subdomain: '@',
type: 'TXT',
content: 'google-site-verification=0jJ1JQ6pdBjRe2r6UCzi2RJbsjvglJUmekPb5rpUQXQ',
},
{
subdomain: '@',
type: 'TXT',
content: 'google-site-verification=UI0Tjq-ecUgNu3kFATkW87qcabX6kTljsbYjms2-FdQ',
},
{
subdomain: '@',
type: 'TXT',
content: 'google-site-verification=FhpMfMf1V9X1n7NSWPcUcb7cKXtUElzM8cbEBm3WXd4',
},
// Other TXT verifications
{ subdomain: '@', type: 'TXT', content: 'czyymtp25a' },
{ subdomain: '_gh-modelcontextprotocol-o', type: 'TXT', content: '8f29e697fc' },
{ subdomain: '_gh-modelcontextprotocol-o.go.sdk', type: 'TXT', content: 'e861b8c825' },
{ subdomain: '_gh-modelcontextprotocol-o.apps.extensions', type: 'TXT', content: '746ef90c28' },
{ subdomain: '_gh-modelcontextprotocol-o.csharp.sdk', type: 'TXT', content: 'b47f9ee5f9' },
{ subdomain: '_gh-modelcontextprotocol-o.java.sdk', type: 'TXT', content: '7be88cc893' },
{ subdomain: '_gh-modelcontextprotocol-o.kotlin.sdk', type: 'TXT', content: 'afeb00d57b' },
{ subdomain: '_gh-modelcontextprotocol-o.maintainers', type: 'TXT', content: 'd673ea837a' },
{ subdomain: '_gh-modelcontextprotocol-o.php.sdk', type: 'TXT', content: '6ae7d8e8ee' },
{ subdomain: '_gh-modelcontextprotocol-o.py.sdk', type: 'TXT', content: 'ded07d9023' },
{ subdomain: '_gh-modelcontextprotocol-o.ruby.sdk', type: 'TXT', content: 'fd52271418' },
{ subdomain: '_gh-modelcontextprotocol-o.rust.sdk', type: 'TXT', content: 'f8e021d103' },
{ subdomain: '_gh-modelcontextprotocol-o.sdk', type: 'TXT', content: '9469faa78d' },
{ subdomain: '_gh-modelcontextprotocol-o.ts.sdk', type: 'TXT', content: '7afda7c066' },
// GitHub Pages domain verification — protects the domain and its immediate
// subdomains from being claimed as a Pages custom domain by accounts outside
// this org. Generated under Org Settings → Pages → Add a verified domain.
{
subdomain: '_github-pages-challenge-modelcontextprotocol.blog',
type: 'TXT',
content: '1d4b431f4dc23d532fd33da4596bcf',
},
{
subdomain: '_github-pages-challenge-modelcontextprotocol.sdk',
type: 'TXT',
content: '4ef0d3c1056a365f0f01b510350fb6',
},
],
'modelcontextprotocol.net': [{ subdomain: '@', type: 'A', content: '76.76.21.21' }],
'modelcontextprotocol.org': [{ subdomain: '@', type: 'A', content: '76.76.21.21' }],
};
interface DnsRecordConfig {
subdomain: string;
type: RecordType;
content: string;
ttl?: number;
priority?: number;
}