instadomain 0.1.0__tar.gz
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.
- instadomain-0.1.0/.dockerignore +9 -0
- instadomain-0.1.0/.gitignore +3 -0
- instadomain-0.1.0/Dockerfile +15 -0
- instadomain-0.1.0/Dockerfile.instadomain +11 -0
- instadomain-0.1.0/LAUNCH.md +245 -0
- instadomain-0.1.0/LICENSE +21 -0
- instadomain-0.1.0/PKG-INFO +74 -0
- instadomain-0.1.0/PLAN.md +349 -0
- instadomain-0.1.0/Procfile +1 -0
- instadomain-0.1.0/README-pypi.md +53 -0
- instadomain-0.1.0/affiliate.py +49 -0
- instadomain-0.1.0/analytics.py +162 -0
- instadomain-0.1.0/api_server.py +198 -0
- instadomain-0.1.0/claude/claude-code-config.md +55 -0
- instadomain-0.1.0/claude/claude-desktop-local.json +15 -0
- instadomain-0.1.0/claude/claude-desktop-remote.json +13 -0
- instadomain-0.1.0/claude/connectors-guide.md +60 -0
- instadomain-0.1.0/claude/cursor-config.json +24 -0
- instadomain-0.1.0/claude/windsurf-config.json +23 -0
- instadomain-0.1.0/config.py +29 -0
- instadomain-0.1.0/deploy.sh +80 -0
- instadomain-0.1.0/docker-compose.yml +37 -0
- instadomain-0.1.0/docs/superpowers/plans/2026-03-15-instadomain-impl.md +2159 -0
- instadomain-0.1.0/docs/superpowers/specs/2026-03-15-instadomain-reseller-design.md +315 -0
- instadomain-0.1.0/domain_lookup.py +159 -0
- instadomain-0.1.0/fly-instadomain.toml +33 -0
- instadomain-0.1.0/fly.toml +36 -0
- instadomain-0.1.0/gpt/gpt-config.md +81 -0
- instadomain-0.1.0/gpt/openapi.yaml +186 -0
- instadomain-0.1.0/gpt/system-prompt.txt +11 -0
- instadomain-0.1.0/instadomain/__init__.py +1 -0
- instadomain-0.1.0/instadomain/api.py +300 -0
- instadomain-0.1.0/instadomain/cloudflare_client.py +97 -0
- instadomain-0.1.0/instadomain/config.py +25 -0
- instadomain-0.1.0/instadomain/db.py +60 -0
- instadomain-0.1.0/instadomain/encryption.py +32 -0
- instadomain-0.1.0/instadomain/fulfillment.py +142 -0
- instadomain-0.1.0/instadomain/mcp_server.py +123 -0
- instadomain-0.1.0/instadomain/opensrs_client.py +216 -0
- instadomain-0.1.0/instadomain/orders.py +116 -0
- instadomain-0.1.0/instadomain/pricing.py +47 -0
- instadomain-0.1.0/instadomain/static/privacy.html +83 -0
- instadomain-0.1.0/instadomain/static/terms.html +79 -0
- instadomain-0.1.0/instadomain/stripe_handler.py +102 -0
- instadomain-0.1.0/landing.py +155 -0
- instadomain-0.1.0/manifest.json +55 -0
- instadomain-0.1.0/mcp_server.py +194 -0
- instadomain-0.1.0/nginx.conf +73 -0
- instadomain-0.1.0/pyproject.toml +38 -0
- instadomain-0.1.0/railway-deploy.md +155 -0
- instadomain-0.1.0/railway.json +12 -0
- instadomain-0.1.0/requirements-instadomain.txt +9 -0
- instadomain-0.1.0/requirements.txt +8 -0
- instadomain-0.1.0/setup-ssl.sh +42 -0
- instadomain-0.1.0/stats.py +213 -0
- instadomain-0.1.0/stats_dashboard.py +225 -0
- instadomain-0.1.0/tests/test_instadomain/__init__.py +0 -0
- instadomain-0.1.0/tests/test_instadomain/conftest.py +56 -0
- instadomain-0.1.0/tests/test_instadomain/test_api.py +112 -0
- instadomain-0.1.0/tests/test_instadomain/test_cloudflare_client.py +87 -0
- instadomain-0.1.0/tests/test_instadomain/test_encryption.py +20 -0
- instadomain-0.1.0/tests/test_instadomain/test_fulfillment.py +128 -0
- instadomain-0.1.0/tests/test_instadomain/test_opensrs_client.py +137 -0
- instadomain-0.1.0/tests/test_instadomain/test_orders.py +94 -0
- instadomain-0.1.0/tests/test_instadomain/test_pricing.py +21 -0
- instadomain-0.1.0/tests/test_instadomain/test_stripe_handler.py +107 -0
- instadomain-0.1.0/tests/test_integration.py +235 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
FROM python:3.12-slim
|
|
2
|
+
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
COPY requirements.txt .
|
|
6
|
+
RUN pip install --no-cache-dir -r requirements.txt
|
|
7
|
+
|
|
8
|
+
COPY *.py ./
|
|
9
|
+
|
|
10
|
+
# Create data directory for SQLite (used locally; Fly mounts a volume at /data)
|
|
11
|
+
RUN mkdir -p /data
|
|
12
|
+
|
|
13
|
+
EXPOSE 8080
|
|
14
|
+
|
|
15
|
+
CMD ["sh", "-c", "python3 -m uvicorn api_server:app --host 0.0.0.0 --port ${PORT:-8080}"]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
FROM python:3.12-slim
|
|
2
|
+
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
COPY requirements-instadomain.txt .
|
|
5
|
+
RUN pip install --no-cache-dir -r requirements-instadomain.txt
|
|
6
|
+
|
|
7
|
+
COPY domain_lookup.py .
|
|
8
|
+
COPY config.py .
|
|
9
|
+
COPY instadomain/ instadomain/
|
|
10
|
+
|
|
11
|
+
CMD ["uvicorn", "instadomain.api:create_app", "--factory", "--host", "0.0.0.0", "--port", "8080"]
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# Launch Checklist
|
|
2
|
+
|
|
3
|
+
Step-by-step playbook for going live. Work top to bottom.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Pre-Launch (Technical)
|
|
8
|
+
|
|
9
|
+
### 1. Register the domain
|
|
10
|
+
|
|
11
|
+
- [ ] Check availability: https://www.namecheap.com/domains/registration/results/?domain=domaincheckr
|
|
12
|
+
- [ ] Alternatives if taken: `checkdomain.tools`, `domaincheckr.io`, `domainavail.com`, `rdapcheck.com`
|
|
13
|
+
- Recommended registrar: **Porkbun** (https://porkbun.com) — cheapest .com (~$9/year), developer-friendly
|
|
14
|
+
- Fallback: **Namecheap** (https://namecheap.com) — ~$10/year
|
|
15
|
+
|
|
16
|
+
### 2. Deploy to Railway
|
|
17
|
+
|
|
18
|
+
Full instructions: see `railway-deploy.md`. Quick version:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm i -g @railway/cli
|
|
22
|
+
railway login
|
|
23
|
+
railway init # name: domain-checker
|
|
24
|
+
railway up # deploys API service
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Railway generates a URL like `https://domain-checker-production.up.railway.app`. HTTPS is automatic — no certbot needed.
|
|
28
|
+
|
|
29
|
+
- [ ] `curl https://<railway-url>/health` returns `{"status": "ok"}`
|
|
30
|
+
- [ ] `curl https://<railway-url>/check/dinkhub.com` returns JSON with `available: true` and affiliate links
|
|
31
|
+
|
|
32
|
+
### 3. Deploy MCP service on Railway
|
|
33
|
+
|
|
34
|
+
In the Railway dashboard, add a second service from the same repo with start command override:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
python3 mcp_server.py --http
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- [ ] `curl https://<mcp-railway-url>/mcp/` returns 200
|
|
41
|
+
|
|
42
|
+
### 4. Set affiliate IDs
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
railway variables set NAMECHEAP_AFFILIATE_ID=YOUR_ID
|
|
46
|
+
railway variables set PORKBUN_AFFILIATE_ID=YOUR_ID
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Set these on both the API service and the MCP service after affiliate approvals (see section below).
|
|
50
|
+
|
|
51
|
+
### 5. Point custom domain to Railway (optional)
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
railway domain
|
|
55
|
+
# Follow prompts; set CNAME in your registrar DNS panel
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- [ ] Wait for propagation (5–30 min). Verify: `dig +short domaincheckr.com`
|
|
59
|
+
|
|
60
|
+
### 6. Update config files with live URLs
|
|
61
|
+
|
|
62
|
+
Replace `domaincheckr.com` placeholders in these files with your actual Railway URLs (or custom domain if set):
|
|
63
|
+
|
|
64
|
+
- `gpt/openapi.yaml` — API service URL
|
|
65
|
+
- `claude/claude-desktop-remote.json` — MCP service URL
|
|
66
|
+
- `claude/cursor-config.json` — MCP service URL
|
|
67
|
+
- `claude/windsurf-config.json` — MCP service URL
|
|
68
|
+
|
|
69
|
+
Fill in affiliate IDs after approvals (see section below).
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Affiliate Programs (Apply Day 1 — don't wait for deploy)
|
|
74
|
+
|
|
75
|
+
Apply to all four simultaneously. Approvals take 1–7 days. You need at least one live before the tool has real value.
|
|
76
|
+
|
|
77
|
+
### Namecheap Affiliates (Primary)
|
|
78
|
+
|
|
79
|
+
- [ ] Apply: https://www.namecheap.com/affiliates/
|
|
80
|
+
- Commission: up to $5 per .com registration, 30-day cookie
|
|
81
|
+
- Approval time: 1–3 business days (manual review)
|
|
82
|
+
- **"How will you promote" field — paste this:**
|
|
83
|
+
> I'm running a domain availability checker tool integrated as a ChatGPT GPT and a Claude Desktop Extension. When users check domain availability via AI assistants, the tool returns results with Namecheap registration links. The tool is used inside ChatGPT (GPT Store) and Claude Desktop, with no separate website — clicks come directly from AI assistant sessions with high purchase intent.
|
|
84
|
+
- After approval: add ID to `.env` as `NAMECHEAP_AFFILIATE_ID`
|
|
85
|
+
|
|
86
|
+
### Porkbun Affiliates (Secondary)
|
|
87
|
+
|
|
88
|
+
- [ ] Apply: https://porkbun.com/affiliates
|
|
89
|
+
- Commission: $2–3 per registration, 30-day cookie
|
|
90
|
+
- Approval time: 2–5 business days
|
|
91
|
+
- **"How will you promote" field — paste this:**
|
|
92
|
+
> I operate a domain availability checker integrated as a Claude Desktop Extension and ChatGPT GPT Store tool. When a user asks an AI assistant about domain availability, the tool queries RDAP in real time and returns results with Porkbun registration links. No website — all distribution is through AI assistant integrations.
|
|
93
|
+
- After approval: add ID to `.env` as `PORKBUN_AFFILIATE_ID`
|
|
94
|
+
|
|
95
|
+
### GoDaddy via CJ Affiliate
|
|
96
|
+
|
|
97
|
+
- [ ] Create CJ account: https://www.cj.com (click "Publisher Sign Up")
|
|
98
|
+
- [ ] Search for GoDaddy program inside CJ dashboard and apply
|
|
99
|
+
- Commission: $5–10 per registration, 45-day cookie
|
|
100
|
+
- Approval time: 3–7 business days (GoDaddy reviews separately inside CJ)
|
|
101
|
+
- **Application notes field:**
|
|
102
|
+
> AI assistant integration — domain availability checker tool running as a ChatGPT GPT and Claude MCP extension. High-intent traffic: users are actively searching for available domains to register.
|
|
103
|
+
- After approval: grab affiliate link template from CJ and add to `affiliate.py`
|
|
104
|
+
|
|
105
|
+
### Dynadot Affiliates
|
|
106
|
+
|
|
107
|
+
- [ ] Apply: https://www.dynadot.com/affiliates.html
|
|
108
|
+
- Commission: $5 per new account + $0.50 per domain transfer, 45-day cookie
|
|
109
|
+
- Approval time: 2–5 business days
|
|
110
|
+
- **"How will you promote" field:**
|
|
111
|
+
> Domain availability checker integrated into ChatGPT and Claude AI assistants. Users ask about domain availability, get real-time results with registration links. Traffic is high-intent — users are actively looking to register domains.
|
|
112
|
+
- After approval: add link template to `affiliate.py`
|
|
113
|
+
|
|
114
|
+
### After Any Approval
|
|
115
|
+
|
|
116
|
+
- [ ] Set the new affiliate ID on Railway: `railway variables set <VAR>=<value>` (Railway auto-restarts)
|
|
117
|
+
- [ ] Test end-to-end: check an available domain via `curl https://<your-url>/check/sometestdomain123456.com` — confirm affiliate links appear in response with correct tracking parameters
|
|
118
|
+
- [ ] Click a link, verify it 302-redirects to the registrar and sets a cookie
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## ChatGPT GPT Store (Phase 2)
|
|
123
|
+
|
|
124
|
+
- [ ] Go to https://chatgpt.com/gpts/editor (requires ChatGPT Plus or higher)
|
|
125
|
+
- [ ] **Name:** `Domain Checker`
|
|
126
|
+
- [ ] **Description** (shown in GPT Store search results):
|
|
127
|
+
> Check if any domain name is available for registration. Instant results with registration links. Suggests creative alternatives if your first choice is taken.
|
|
128
|
+
- [ ] **System prompt:** copy from `gpt/system-prompt.txt`
|
|
129
|
+
- [ ] **Add Action:**
|
|
130
|
+
- Click "Add actions"
|
|
131
|
+
- Import from URL: `https://domaincheckr.com/openapi.json`
|
|
132
|
+
- Or manually upload `gpt/openapi.yaml`
|
|
133
|
+
- Authentication: None
|
|
134
|
+
- [ ] **Conversation starters** (add all four):
|
|
135
|
+
- `Is mycoolstartup.com available?`
|
|
136
|
+
- `Check these 5 domains for me: ...`
|
|
137
|
+
- `I'm building a fitness app. Find me available domain names.`
|
|
138
|
+
- `What domains are available for a SaaS called Taskly?`
|
|
139
|
+
- [ ] **Privacy policy URL:** `https://domaincheckr.com/privacy` (create a simple static page or add a `/privacy` route returning plain text)
|
|
140
|
+
- [ ] **Test before publishing:**
|
|
141
|
+
- Ask: "Is dinkhub.com available?" — verify it calls the action and returns affiliate links
|
|
142
|
+
- Ask: "Find domain names for a recipe app" — verify bulk suggestions work
|
|
143
|
+
- [ ] Set visibility to **Public**
|
|
144
|
+
- [ ] Publish
|
|
145
|
+
- [ ] Copy GPT URL (format: `https://chatgpt.com/g/g-XXXXX-domain-checker`) — save it for sharing
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Claude Distribution (Phase 3)
|
|
150
|
+
|
|
151
|
+
### Test local MCP (stdio)
|
|
152
|
+
|
|
153
|
+
- [ ] Edit `claude/claude-desktop-local.json`: replace `/path/to/domain-checker` with actual path
|
|
154
|
+
- [ ] Merge into `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
155
|
+
- [ ] Restart Claude Desktop
|
|
156
|
+
- [ ] Ask Claude: "Is dinkhub.com available?" — confirm it calls the tool and returns affiliate links
|
|
157
|
+
|
|
158
|
+
### Test remote MCP (streamable-HTTP)
|
|
159
|
+
|
|
160
|
+
- [ ] Merge `claude/claude-desktop-remote.json` into Claude Desktop config (points to `https://domaincheckr.com/mcp/`)
|
|
161
|
+
- [ ] Restart Claude Desktop, repeat the same domain check test
|
|
162
|
+
|
|
163
|
+
### Submit to Anthropic Extensions Directory
|
|
164
|
+
|
|
165
|
+
- [ ] Fill out interest form: https://www.anthropic.com/extensions (check for current form URL — Anthropic updates this)
|
|
166
|
+
- **What to include in the submission:**
|
|
167
|
+
- Name: Domain Checker
|
|
168
|
+
- Description: Real-time domain availability checker via RDAP. Checks single domains, bulk lists, and generates domain ideas from keywords. Returns affiliate registration links for available domains.
|
|
169
|
+
- MCP server URL: `https://domaincheckr.com/mcp/`
|
|
170
|
+
- Tools exposed: `check_domain`, `check_domains_bulk`, `suggest_domains`
|
|
171
|
+
- Transport: Streamable HTTP
|
|
172
|
+
- Auth: None (public)
|
|
173
|
+
- Use case: Any user who wants to find and register a domain name
|
|
174
|
+
- [ ] Monitor email for acceptance confirmation (can take 1–4 weeks)
|
|
175
|
+
|
|
176
|
+
### Add as Connector on claude.ai
|
|
177
|
+
|
|
178
|
+
- [ ] Go to https://claude.ai → Settings → Connectors → Add Custom Connector
|
|
179
|
+
- [ ] URL: `https://domaincheckr.com/mcp/`
|
|
180
|
+
- [ ] Name: Domain Checker
|
|
181
|
+
- [ ] Test via the claude.ai web interface
|
|
182
|
+
|
|
183
|
+
### Publish config snippets for other MCP clients
|
|
184
|
+
|
|
185
|
+
- [ ] Post `claude/cursor-config.json` and `claude/windsurf-config.json` to the GitHub repo README
|
|
186
|
+
- [ ] Share on Reddit: r/cursor_ai, r/windsurf
|
|
187
|
+
- Message to use:
|
|
188
|
+
> Added a zero-config domain availability checker MCP server. Works in Cursor, Windsurf, Claude Desktop. Checks via RDAP (no API key). Config: [link to repo]
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Post-Launch Monitoring
|
|
193
|
+
|
|
194
|
+
### Daily stats check
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Run locally (SQLite lives in the Railway service's ephemeral filesystem; for persistence
|
|
198
|
+
# consider mounting a Railway Volume or pulling the DB via railway run):
|
|
199
|
+
railway run python3 stats.py
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Stats dashboard
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
python3 stats_dashboard.py
|
|
206
|
+
# Opens at http://localhost:8085
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Watch:
|
|
210
|
+
- [ ] Total checks per day (target: 100+ by end of week 1)
|
|
211
|
+
- [ ] Available vs taken ratio (expect ~30% available)
|
|
212
|
+
- [ ] Affiliate link click count
|
|
213
|
+
- [ ] Source breakdown (mcp vs api)
|
|
214
|
+
|
|
215
|
+
### External dashboards
|
|
216
|
+
|
|
217
|
+
- [ ] GPT Store analytics: https://chatgpt.com/gpts/editor → select your GPT → Analytics tab
|
|
218
|
+
- Track: conversations started, messages sent
|
|
219
|
+
- [ ] Namecheap affiliate dashboard: https://affiliate.namecheap.com
|
|
220
|
+
- [ ] CJ Affiliate (GoDaddy): https://members.cj.com
|
|
221
|
+
- [ ] Porkbun affiliate: https://porkbun.com/affiliates/dashboard
|
|
222
|
+
|
|
223
|
+
### First-week targets
|
|
224
|
+
|
|
225
|
+
| Metric | Target |
|
|
226
|
+
|--------|--------|
|
|
227
|
+
| Daily checks | 100+ |
|
|
228
|
+
| GPT Store conversations | 50+ |
|
|
229
|
+
| Affiliate link clicks | 5+ |
|
|
230
|
+
| Uptime | 100% |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Growth (Month 2+)
|
|
235
|
+
|
|
236
|
+
- **SEO landing page:** Add a `/` route or static `index.html` at `domaincheckr.com` explaining the tool. Target keywords: "domain availability checker", "check domain name free"
|
|
237
|
+
- **Product Hunt:** Launch when daily checks hit 1,000+. Category: Developer Tools
|
|
238
|
+
- **Reddit posts:**
|
|
239
|
+
- r/ChatGPT: "I built a domain checker GPT that actually suggests alternatives"
|
|
240
|
+
- r/ClaudeAI: "Free domain availability MCP server — works in Claude Desktop, Cursor, Windsurf"
|
|
241
|
+
- r/EntrepreneurRideAlong: "Side project update: domain checker affiliate tool"
|
|
242
|
+
- **More TLDs:** Add `.io`, `.ai`, `.dev`, `.co` RDAP endpoints to `domain_lookup.py` — high-demand TLDs worth checking
|
|
243
|
+
- **More registrars:** Add Spaceship (https://spaceship.com/affiliates, $1–3/reg) once the others are live
|
|
244
|
+
- **RDAP cache:** Add 5-minute TTL cache in `domain_lookup.py` once daily volume exceeds 10,000 checks
|
|
245
|
+
- **A/B test link format:** Try "Register at Namecheap →" vs inline markdown vs end-of-message summary to find highest click-through format
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 InstaDomain
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: instadomain
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Buy domains without leaving the terminal. MCP server for Claude Code.
|
|
5
|
+
Project-URL: Homepage, https://github.com/nachdakwale/instadomain
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: ai,claude,dns,domain,mcp
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Topic :: Internet :: Name Service (DNS)
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Requires-Dist: fastmcp>=2.0
|
|
19
|
+
Requires-Dist: httpx>=0.27
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# InstaDomain
|
|
23
|
+
|
|
24
|
+
Buy domains without leaving the terminal. An MCP server for Claude Code that lets you check availability, purchase domains, and get DNS management credentials -- all through natural conversation.
|
|
25
|
+
|
|
26
|
+
## What It Does
|
|
27
|
+
|
|
28
|
+
1. **Check domain availability** -- see if a domain is available and get instant pricing
|
|
29
|
+
2. **Buy domains** -- purchase via Stripe checkout (opens in browser)
|
|
30
|
+
3. **Get DNS access** -- receive Cloudflare nameservers and a scoped API token for DNS management
|
|
31
|
+
|
|
32
|
+
## Setup
|
|
33
|
+
|
|
34
|
+
### Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pip install instadomain
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Add to Claude Code
|
|
41
|
+
|
|
42
|
+
Add to your Claude Code MCP config (`~/.claude/claude_desktop_config.json`):
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"instadomain": {
|
|
48
|
+
"command": "instadomain"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Or run directly
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
instadomain
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Usage
|
|
61
|
+
|
|
62
|
+
Once configured, just ask Claude:
|
|
63
|
+
|
|
64
|
+
- "Is coolstartup.com available?"
|
|
65
|
+
- "Buy mycoolproject.dev"
|
|
66
|
+
- "What's the status of my domain order?"
|
|
67
|
+
|
|
68
|
+
## How It Works
|
|
69
|
+
|
|
70
|
+
InstaDomain registers domains through OpenSRS, sets up DNS on Cloudflare, and gives you a scoped API token so you can manage DNS records programmatically. Payments are handled securely through Stripe.
|
|
71
|
+
|
|
72
|
+
## Pricing
|
|
73
|
+
|
|
74
|
+
Domains are priced at wholesale cost + a small markup. Prices vary by TLD. You'll see the exact price before confirming any purchase.
|