Skip to main content
Glama
drdanielbender

Porkbun Domain Availability MCP Server

Porkbun Domain Availability MCP Server

A Model Context Protocol (MCP) server that provides tools to check domain availability using the Porkbun API v3.

Features

  • Single Domain Check: Check the availability of a single domain name

  • Bulk Domain Check: Check availability of multiple domains (up to 10 at once)

  • Rate Limiting: Respects Porkbun's rate limits with built-in delays

  • Error Handling: Comprehensive error handling with detailed messages

Related MCP server: Domain Checker MCP Server

Tools

1. check_domain_availability

Checks the availability of a single domain name and returns detailed pricing information.

Parameters:

  • domain (string): The domain name to check for availability

Returns:

  • Domain availability status

  • Pricing information

  • Premium domain status

  • First-year promotions

  • Renewal and transfer pricing

  • Rate limit information

2. bulk_check_domains_availability

⚠️ WARNING: Checks the availability of multiple domain names at once. Due to Porkbun API rate limits (1 check per 10 seconds), this tool has a very long runtime. For example: 5 domains = ~50 seconds, 10 domains = ~100 seconds (1.7 minutes). The bulk tool provides better user experience and consolidated results compared to making multiple single domain check calls.

Parameters:

  • domains (array): Array of domain names to check (maximum 10)

Returns:

  • Bulk results with availability status for each domain

  • Pricing information for available domains

  • Individual error messages for failed checks

Prerequisites

Setup

1. Install Dependencies

npm install

2. Configure API Credentials

Set your Porkbun API credentials using environment variables or a .env file:

Option A: Environment Variables

export PORKBUN_API_KEY="your_api_key"
export PORKBUN_SECRET_API_KEY="your_secret_key"

Option B: Create a .env file

Create a .env file in the project root directory:

PORKBUN_API_KEY=your_api_key
PORKBUN_SECRET_API_KEY=your_secret_key

Option C: Custom .env Location

Pass a custom path when running the server:

node build/index.js --dotenv-path /path/to/your/.env

Building

Compile the TypeScript code:

npm run build

This creates the executable JavaScript file in the build/ directory.

Running the Server

Standard Start

npm start

Custom .env Path

node build/index.js --dotenv-path /path/to/your/.env

Development Mode

npm run dev

The server communicates using the MCP stdio transport (standard input/output).

Usage with Claude Desktop

To use this server with Claude Desktop, add the following configuration to the "mcpServers" section of your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "porkbun-domain-availability": {
      "command": "node",
      "args": [
        "/absolute/path/to/mcp-porkbun-domain-availability/build/index.js",
        "--dotenv-path",
        "/absolute/path/to/mcp-porkbun-domain-availability/.env"
      ]
    }
  }
}

Replace the placeholder paths with the actual absolute paths on your system. Save the configuration file and restart Claude Desktop.

API Information

This server uses the Porkbun API v3. For more information about the API:

Rate Limiting

The Porkbun API has rate limits for domain checks. This server:

  • Implements automatic delays between requests (10 second)

  • Limits bulk checks to 10 domains maximum

  • Provides rate limit information in responses

Error Handling

The server provides detailed error messages for:

  • Missing or invalid API credentials

  • Network connectivity issues

  • API rate limit violations

  • Invalid domain names

  • Server errors

License

MIT License - see project repository for details.

Available Tools

2 tools
bulk_check_domains_availabilityBulk Check Domains AvailabilityA

Checks the availability of up to 10 domains names at once. WARNING: Due to Porkbun API rate limits (1 check per 10 seconds), this tool has a very long runtime. For example: 5 domains = ~50 seconds, 10 domains = ~100 seconds (1.7 minutes). The bulk tool provides better user experience and consolidated results compared to making multiple single domain check calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainsYesArray of domain names to check for availability

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively discloses critical behavioral traits: the rate limit constraint ('Porkbun API rate limits (1 check per 10 seconds)'), runtime estimates ('5 domains = ~50 seconds, 10 domains = ~100 seconds'), and the non-destructive nature (implied by 'checks availability'). This goes beyond basic functionality to inform about performance and limitations.

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 front-loaded with the core functionality, followed by warnings and comparative benefits. Each sentence earns its place: the first states the purpose, the second explains runtime constraints with examples, and the third justifies usage versus alternatives. It is efficiently structured without redundancy.

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

Completeness5/5

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

Given the tool's complexity (bulk operation with rate limits), no annotations, and the presence of an output schema (which handles return values), the description is complete. It covers purpose, usage guidelines, behavioral transparency (rate limits, runtime), and parameter constraints, providing all necessary context for an agent to invoke it correctly.

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%, with the parameter 'domains' documented as 'Array of domain names to check for availability.' The description adds marginal value by specifying the maximum array size ('up to 10 domains names at once'), but does not provide additional syntax or format details beyond what the schema already covers. This meets the baseline for high schema coverage.

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 ('checks') and resource ('availability of up to 10 domains names at once'), distinguishing it from the sibling tool 'check_domain_availability' by specifying bulk capability. It explicitly mentions the maximum batch size (10 domains), making the purpose specific and differentiated.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives: it states that 'the bulk tool provides better user experience and consolidated results compared to making multiple single domain check calls,' directly referencing the sibling tool. It also warns about runtime implications, helping users decide based on performance trade-offs.

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

check_domain_availabilityCheck Domain AvailabilityA

Checks the availability of a domain name and returns pricing information. Please note that domain checks are rate limited to 1 check per 10 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain name to check for availability

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it returns pricing information (beyond just availability) and specifies a rate limit (1 check per 10 seconds). It does not mention error handling or authentication needs, but covers essential operational aspects.

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 appropriately sized with two sentences: the first states the purpose and output, and the second adds critical behavioral context (rate limiting). Every sentence earns its place without waste.

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

Completeness5/5

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

Given the tool's low complexity (single parameter, no annotations but with output schema), the description is complete enough. It explains what the tool does, what it returns, and operational constraints, and the output schema will handle return value details.

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?

The schema description coverage is 100%, so the schema already documents the single 'domain' parameter fully. The description does not add any meaning beyond what the schema provides (e.g., format examples or validation rules), meeting the baseline for high coverage.

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 specific action ('checks the availability') and resource ('domain name'), and distinguishes it from the sibling tool 'bulk_check_domains_availability' by implying this is for single-domain checks versus bulk operations.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (checking domain availability and pricing), but does not explicitly state when not to use it or name the sibling alternative. The rate limit note indirectly suggests usage constraints.

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.

  1. 2 tool updatesv1.0.0
    • First observedbulk_check_domains_availability
    • First observedcheck_domain_availability

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one handles bulk checks for up to 10 domains with consolidated results, while the other checks a single domain with pricing details. There is no overlap or ambiguity between them, as each serves a specific use case within the domain availability domain.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with snake_case naming: 'bulk_check_domains_availability' and 'check_domain_availability'. The naming is predictable and readable, clearly indicating the action (check) and the target (domain availability), with 'bulk' appropriately modifying the first tool.

Tool Count3/5

With only 2 tools, the server feels thin for a domain availability service, as it lacks operations like domain registration, management, or search. However, given the specific focus on availability checks and API rate limits, the count is borderline but reasonable for a minimal, focused implementation.

Completeness2/5

The tool surface is significantly incomplete for a domain availability server, as it only provides check operations without any ability to register, update, or manage domains. This creates dead ends for agents trying to perform full domain lifecycle tasks, limiting the server to read-only functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables checking domain name availability using WHOIS lookups and DNS resolution. Supports both single and batch domain checking with detailed availability analysis.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables domain availability checking through dual verification using WHOIS lookups and DNS resolution. Supports both single and batch processing to provide detailed analysis on whether domains are likely available or already registered.
    4
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables checking domain name availability for single or multiple domains using WHOIS and DNS verification.
    1
    21
    MIT