@craftrift/verify-mcp
A Model Context Protocol (MCP) server for the CraftRift Verify API. Verify websites, SSL certificates, DNS propagation, and API health directly from Claude Desktop.
Features
- 🔍 Website Verification - Check if websites are live and accessible
- 🔐 SSL Certificate Validation - Verify SSL validity, expiration, and certificate chain
- 🌐 DNS Propagation Checks - Verify A, AAAA, CNAME, MX, and TXT record propagation
- 🏥 API Health Monitoring - Check API endpoints for health and expected responses
- ⚡ Fast & Reliable - Powered by CraftRift's global verification infrastructure
- 🔑 Demo Mode - Works without API key (rate limited by IP)
Installation
npm
npm install -g @craftrift/verify-mcp
npx
npx @craftrift/verify-mcp
Claude Desktop Configuration
Add this to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"verify": {
"command": "npx",
"args": ["-y", "@craftrift/verify-mcp"],
"env": {
"CRAFTRIFT_API_KEY": "your_api_key_here"
}
}
}
}
Note: The
CRAFTRIFT_API_KEYis optional. Without it, the server runs in demo mode with IP-based rate limiting. Get a free API key at verify.craftrift.com.
Tools
verify_website
Verify if a website is live and accessible.
| Parameter | Type | Required | Description |
|---|---|---|---|
| target | string | Yes | Website URL (e.g., https://example.com) |
| timeout_ms | number | No | Request timeout in ms (default: 10000) |
| follow_redirects | boolean | No | Follow HTTP redirects (default: true) |
Example Response:
{
"verified": true,
"type": "website_live",
"target": "https://example.com",
"checks": [
{
"name": "http_response",
"passed": true,
"actual": "200 OK",
"detail": "Website returned successful HTTP status"
},
{
"name": "content_accessible",
"passed": true,
"actual": "1276 bytes",
"detail": "Website content is accessible"
}
],
"duration_ms": 245,
"timestamp": "2024-01-15T10:30:00Z",
"region": "us-east-1"
}
verify_ssl
Verify if a website has a valid SSL certificate.
| Parameter | Type | Required | Description |
|---|---|---|---|
| target | string | Yes | Hostname (e.g., example.com) |
| timeout_ms | number | No | Request timeout in ms (default: 10000) |
Example Response:
{
"verified": true,
"type": "ssl_valid",
"target": "example.com",
"checks": [
{
"name": "certificate_valid",
"passed": true,
"actual": "valid",
"detail": "SSL certificate is valid and trusted"
},
{
"name": "not_expired",
"passed": true,
"actual": "89 days remaining",
"detail": "Certificate expires on 2024-04-15"
},
{
"name": "chain_complete",
"passed": true,
"actual": "3 certificates",
"detail": "Full certificate chain is present"
}
],
"duration_ms": 312,
"timestamp": "2024-01-15T10:30:00Z",
"region": "us-east-1"
}
verify_dns
Verify if DNS records have propagated.
| Parameter | Type | Required | Description |
|---|---|---|---|
| target | string | Yes | Domain name (e.g., example.com) |
| record_type | string | No | DNS record type: A, AAAA, CNAME, MX, TXT, or ALL (default: ALL) |
| timeout_ms | number | No | Request timeout in ms (default: 10000) |
Example Response:
{
"verified": true,
"type": "dns_propagated",
"target": "example.com",
"checks": [
{
"name": "a_record",
"passed": true,
"actual": "93.184.216.34",
"detail": "A record found and propagated"
},
{
"name": "mx_record",
"passed": true,
"actual": "10 mail.example.com",
"detail": "MX record found and propagated"
}
],
"duration_ms": 156,
"timestamp": "2024-01-15T10:30:00Z",
"region": "us-east-1"
}
verify_api_health
Verify if an API endpoint is healthy and responding correctly.
| Parameter | Type | Required | Description |
|---|---|---|---|
| target | string | Yes | API endpoint URL (e.g., https://api.example.com/health) |
| expect | object | No | Expected response criteria (status_code, contains) |
| timeout_ms | number | No | Request timeout in ms (default: 10000) |
| follow_redirects | boolean | No | Follow HTTP redirects (default: true) |
Example Response:
{
"verified": true,
"type": "api_healthy",
"target": "https://api.example.com/health",
"checks": [
{
"name": "status_code",
"passed": true,
"actual": "200",
"detail": "Expected status code 200, got 200"
},
{
"name": "response_time",
"passed": true,
"actual": "45ms",
"detail": "API responded within acceptable time"
},
{
"name": "content_match",
"passed": true,
"actual": "found",
"detail": "Expected content found in response"
}
],
"duration_ms": 67,
"timestamp": "2024-01-15T10:30:00Z",
"region": "us-east-1"
}
Pricing
| Plan | Requests/Month | Price |
|---|---|---|
| Free | 100 | $0 |
| Starter | 2,000 | $19/mo |
| Pro | 10,000 | $49/mo |
Get your API key at verify.craftrift.com
Development
# Install dependencies
npm install
# Build
npm run build
# Run locally
npm run dev
Links
License
MIT © 2026 Jibran / CraftRift