MCP server for confidence-scored domain availability checking via CanYouGrab.it
Project description
CanYouGrab.it MCP Server
Real-time, confidence-scored domain availability checking for AI agents. Works with Claude, ChatGPT, Gemini, Copilot, and any MCP-compatible client.
AI assistants cannot check domain availability on their own — they guess, and they're usually wrong. CanYouGrab.it solves this by providing live DNS + WHOIS lookups with confidence scoring, so your AI agent knows how reliable each result is.
Features
- Confidence scoring — every result is rated high/medium/low so the agent can qualify its answer
- Bulk checking — up to 100 domains per request
- WHOIS enrichment — registrar, creation date, expiry, nameservers for registered domains
- Domain info lookup — detailed RDAP/WHOIS data for any registered domain
- Read-only and safe — all tools are non-destructive with correct MCP safety annotations
- Fast — responses typically under 2 seconds, cached results under 100ms
Quick Start
Claude Desktop / Claude Code
Add to your MCP config (~/.claude/.mcp.json or Claude Desktop settings):
{
"mcpServers": {
"canyougrab": {
"command": "uvx",
"args": ["mcp-server-canyougrab"],
"env": {
"CANYOUGRAB_API_KEY": "cyg_your_key_here"
}
}
}
}
VS Code / Cursor
Add to .vscode/mcp.json:
{
"servers": {
"canyougrab": {
"command": "uvx",
"args": ["mcp-server-canyougrab"],
"env": {
"CANYOUGRAB_API_KEY": "cyg_your_key_here"
}
}
}
}
ChatGPT / Remote Clients
Connect to the remote endpoint (OAuth 2.0 authentication):
https://api.canyougrab.it/mcp
Get an API Key
Sign up at portal.canyougrab.it to get your API key. A free tier is available for basic lookups.
Tools
check_domains
Check availability of up to 100 domains per request. Each result includes:
- available:
true(registrable),false(taken), ornull(couldn't determine) - confidence:
high/medium/low - source:
dns/whois/cache - checked_at: When the data was gathered
- cache_age_seconds: How fresh the data is
- registration: Registrar, creation date, expiry date (for taken domains)
Confidence Levels
| Level | Meaning |
|---|---|
| high | Verified by DNS + WHOIS, or fresh DNS with active nameservers |
| medium | DNS only — WHOIS was unavailable or timed out |
| low | DNS failure, timeout, or stale cached data |
Examples
Example 1: Quick availability check
User: "Is coolstartup.com available?"
→ check_domains(["coolstartup.com"])
{
"results": [
{
"domain": "coolstartup.com",
"available": false,
"confidence": "high",
"source": "dns",
"checked_at": "2026-03-17T12:00:00Z",
"cache_age_seconds": 0,
"registration": {
"registrar": "GoDaddy.com, LLC",
"created": "2015-06-12",
"expires": "2027-06-12"
}
}
]
}
The domain is taken with high confidence. Registration details show the registrar and expiry date.
Example 2: Bulk comparison across TLDs
User: "Check if grabify.io, grabify.co, grabify.dev, and grabify.app are available"
→ check_domains(["grabify.io", "grabify.co", "grabify.dev", "grabify.app"])
{
"results": [
{ "domain": "grabify.io", "available": false, "confidence": "high", "source": "dns" },
{ "domain": "grabify.co", "available": true, "confidence": "high", "source": "whois" },
{ "domain": "grabify.dev", "available": true, "confidence": "high", "source": "dns" },
{ "domain": "grabify.app", "available": true, "confidence": "high", "source": "dns" }
]
}
Three of four domains are available. The agent can recommend the best option.
Example 3: Handling ambiguous results
User: "Can I register example.xyz?"
→ check_domains(["example.xyz"])
{
"results": [
{
"domain": "example.xyz",
"available": null,
"confidence": "low",
"source": "dns",
"checked_at": "2026-03-17T12:00:00Z",
"cache_age_seconds": 0,
"registration": null
}
]
}
When available is null with low confidence, the lookup was inconclusive (DNS timeout, WHOIS failure). The agent should inform the user and suggest trying again.
get_domain_info
Get WHOIS/RDAP information for a registered domain — registrar, dates, nameservers, and status codes.
Example
Example 4: Domain reconnaissance
User: "Who owns example.com and when does it expire?"
→ get_domain_info("example.com")
{
"domain": "example.com",
"registrar": "RESERVED-Internet Assigned Numbers Authority",
"created_date": "1995-08-14T00:00:00Z",
"expiry_date": "2025-08-13T00:00:00Z",
"updated_date": "2024-08-14T07:01:38Z",
"nameservers": ["a.iana-servers.net", "b.iana-servers.net"],
"status": ["clientDeleteProhibited", "clientTransferProhibited", "clientUpdateProhibited"],
"source": "rdap"
}
Returns structured WHOIS data including registrar, registration dates, nameservers, and EPP status codes.
check_usage
Check your current API usage and remaining quota for the billing period.
Example
Example 5: Monitor your quota
User: "How many domain lookups do I have left this month?"
→ check_usage()
{
"plan": "starter",
"lookups_today": 847,
"lookups_limit": 5000,
"period": "monthly"
}
Safety Annotations
All tools include correct MCP safety annotations:
| Tool | readOnlyHint | destructiveHint | idempotentHint | openWorldHint |
|---|---|---|---|---|
| check_domains | true | false | true | true |
| get_domain_info | true | false | true | false |
| check_usage | true | false | true | false |
All operations are read-only — no user data is modified, no external actions are taken.
Negative Test Prompts
These prompts should not trigger CanYouGrab.it tools:
- "What's the weather in New York?"
- "Write me a poem about the ocean"
- "How do I cook pasta?"
- "What is the capital of France?"
- "Summarize this article for me"
- "Help me write a Python script"
- "What time is it?"
The tools should only activate for domain-related queries: availability checks, WHOIS lookups, domain name suggestions, and API usage inquiries.
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
CANYOUGRAB_API_KEY |
Yes (STDIO mode) | — | Your API key from portal.canyougrab.it |
CANYOUGRAB_API_URL |
No | https://api.canyougrab.it |
API base URL override |
Privacy Policy
See our privacy policy: https://canyougrab.it/privacy
Summary: We collect only the domain names submitted for checks and request metadata (timestamps, API key identifier) for billing and rate limiting. We do not receive or store your AI assistant conversations. Query logs are retained for 30 days. We do not sell your data.
Support
- Email: support@canyougrab.it
- GitHub Issues: github.com/einiba/canyougrab-api/issues
MCP Registry
mcp-name: io.github.einiba/canyougrab
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_canyougrab-1.1.1.tar.gz.
File metadata
- Download URL: mcp_server_canyougrab-1.1.1.tar.gz
- Upload date:
- Size: 63.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdc2870f34e1e2ffe40b1d1735ecadda6cb4f8e48c4951c7abd5f0d6c7a35727
|
|
| MD5 |
c32f4e7849339991df54902bf4c28aaf
|
|
| BLAKE2b-256 |
57ef62d1150ac7efc16a36fa557fc4f15e62ebeafe9e775c588e7d6bdbb29894
|
File details
Details for the file mcp_server_canyougrab-1.1.1-py3-none-any.whl.
File metadata
- Download URL: mcp_server_canyougrab-1.1.1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0aac6be8827430c924e4de0a2b7e4954368c76b1583100253891179ea8d334e4
|
|
| MD5 |
8c2e64b7a46473453db3a020526c4fe5
|
|
| BLAKE2b-256 |
aa5e34655c6ea9c432beebba960e2425e6e8860634d4d2913534e1807c8aeb1c
|