Skip to main content
Glama
Jiibran
by Jiibran

@craftrift/verify-mcp

npm version License: MIT Node Version

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)

Related MCP server: @bounceprotect/mcp

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_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.

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

License

MIT © 2026 Jibran / CraftRift

Available Tools

4 tools
verify_api_healthA

Verify if an API endpoint is healthy and responding correctly. Can check for expected status codes or response content.

ParametersJSON Schema
NameRequiredDescriptionDefault
expectNoExpected response criteria
targetYesThe API endpoint URL to verify (e.g., https://api.example.com/health)
timeout_msNoRequest timeout in milliseconds (default: 10000)
follow_redirectsNoFollow HTTP redirects (default: true)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description partially discloses behavior (checks status/content) but omits details like return format, failure handling, or side effects. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no redundancy, and immediately conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks explanation of return values (e.g., pass/fail format), which is critical for health checks. Also misses guidance on the nested 'expect' object structure. Incomplete for a tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds minimal value beyond stating the tool's general capability. It does not clarify parameter usage beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it verifies API endpoint health, with specific mention of status codes and response content. This distinguishes it from sibling tools like verify_dns and verify_ssl.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for API health checks but provides no explicit when-to-use or when-not-to-use guidance, nor does it reference alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_dnsB

Verify if DNS records have propagated. Checks A, AAAA, CNAME, MX, and TXT records.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe domain name to verify DNS for (e.g., example.com)
timeout_msNoRequest timeout in milliseconds (default: 10000)
record_typeNoDNS record type to check (A, AAAA, CNAME, MX, TXT, or ALL)ALL

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits. It only lists record types checked but lacks details on failure behavior, idempotency, resolver selection, or whether it queries multiple nameservers. Incomplete disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that front-loads the core purpose without any extraneous words. Efficient and direct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should explain what the tool returns (e.g., success/failure per record type, propagation status). It does not. Given the tool's verification nature, this is a significant omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions). The description repeats the record types already listed in the schema, adding marginal value. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: verify DNS propagation, and lists specific record types checked. It distinguishes from sibling tools (verify_api_health, verify_ssl, verify_website) which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. Siblings target different domains, so usage is generally implied, but no exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_sslB

Verify if a website has a valid SSL certificate. Checks certificate validity, expiration, and chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe hostname to verify SSL for (e.g., example.com)
timeout_msNoRequest timeout in milliseconds (default: 10000)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether it is read-only, what happens on failure, or any side effects. It only lists checks performed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core purpose. No extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should explain the return value structure or behavior. It does not mention what the tool returns, leaving agents uncertain about the response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds minimal value beyond the parameter descriptions. It reiterates the intent but offers no additional semantic hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool verifies SSL certificates, checking validity, expiration, and chain. It distinguishes from sibling tools like verify_dns and verify_website by focusing on SSL.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions. It only states the basic function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_websiteB

Verify if a website is live and accessible. Checks HTTP response and content availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesThe website URL to verify (e.g., https://example.com)
timeout_msNoRequest timeout in milliseconds (default: 10000)
follow_redirectsNoFollow HTTP redirects (default: true)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits. It mentions 'checks HTTP response and content availability' but does not explain success/failure criteria, handling of timeouts, or response format. This is insufficient for a live check tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence states the purpose, the second adds detail. Could be considered efficient, but it lacks a brief usage context or return value hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no output schema, and no annotations, the description is incomplete. It does not describe what the tool returns (e.g., boolean, message), how to interpret results, or any side effects. A verification tool should provide expected output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no additional meaning beyond the parameter names and descriptions. For example, it doesn't clarify that 'target' might need a protocol prefix or that 'timeout_ms' affects behavior. The description repeats schema content without adding value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'verify' and the resource 'website', and specifies that it checks HTTP response and content availability. This distinguishes it from sibling tools like verify_dns or verify_ssl, which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies basic web accessibility checking but does not explicitly state when to use this tool versus siblings. No alternative tools are mentioned, and there is no guidance on prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedverify_api_health
    • First observedverify_dns
    • First observedverify_ssl
    • First observedverify_website

TDQS

A3.7/5.0
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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jiibran/verify-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server