@craftrift/verify-mcp
by Jiibran
README.md
# @craftrift/verify-mcp
[](https://www.npmjs.com/package/@craftrift/verify-mcp)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org)
A Model Context Protocol (MCP) server for the [CraftRift Verify API](https://verify.craftrift.com). 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
```bash
npm install -g @craftrift/verify-mcp
```
### npx
```bash
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`
```json
{
"mcpServers": {
"verify": {
"command": "npx",
"args": ["-y", "@craftrift/verify-mcp"],
"env": {
"CRAFTRIFT_API_KEY": "your_api_key_here"
}
}
}
}
```
> **Note**: The `CRAFTRIFT_API_KEY` is optional. Without it, the server runs in demo mode with IP-based rate limiting. Get a free API key at [verify.craftrift.com](https://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**:
```json
{
"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**:
```json
{
"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**:
```json
{
"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**:
```json
{
"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](https://verify.craftrift.com)
## Development
```bash
# Install dependencies
npm install
# Build
npm run build
# Run locally
npm run dev
```
## Links
- [CraftRift Verify API](https://verify.craftrift.com)
- [GitHub Repository](https://github.com/Jiibran/verify-mcp)
- [Report Issues](https://github.com/Jiibran/verify-mcp/issues)
## License
MIT © 2026 [Jibran / CraftRift](https://craftrift.com)
TDQS
A3.7/5.0
Scored across 4 tools
Disambiguation5/5
Each tool targets a distinct verification aspect (API health, DNS, SSL, website) with no overlap, making it easy for an agent to choose the correct one.
Naming Consistency5/5
All tools follow a consistent 'verify_' prefix followed by a specific noun (e.g., verify_api_health, verify_dns), forming a predictable verb_noun pattern.
Tool Count5/5
Four tools is well-scoped for a verification-focused server; each tool covers a common infrastructure check without overloading or underserving the domain.
Completeness4/5
The set covers the most common verification needs (API, DNS, SSL, website) but lacks checks like port availability or email delivery, which are minor gaps.
Maintenance
ActivityInactive
ResponsivenessNo issues