Skip to main content
Glama

WHOIS MCP Server

by dadepo
server.py3.14 kB
import logging from collections.abc import Callable from pathlib import Path from dotenv import load_dotenv from mcp.server.fastmcp import FastMCP # Configure logging logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" ) logger = logging.getLogger(__name__) env_path = Path(".env") if env_path.exists(): logger.info(f"Loading environment variables from {env_path}") load_dotenv(dotenv_path=env_path) else: logger.warning("No .env file found, proceeding with system environment variables") def register_tools(mcp: FastMCP) -> None: """Register all tools with the MCP server.""" from whois_mcp.config import SUPPORT_ARIN, SUPPORT_RIPE tool_registrations: list[Callable[[FastMCP], None]] = [] # Register RIPE tools if enabled if SUPPORT_RIPE: logger.info("RIPE NCC support enabled - registering RIPE tools") from whois_mcp.tools.ripe.contact_card import register as reg_contact_card from whois_mcp.tools.ripe.expand_as_set import register as reg_expand_as_set from whois_mcp.tools.ripe.validate_route_object import ( register as reg_validate_route, ) from whois_mcp.tools.ripe.whois_query import register as reg_whois tool_registrations.extend( [ reg_whois, reg_expand_as_set, reg_validate_route, reg_contact_card, ] ) else: logger.info("RIPE NCC support disabled - skipping RIPE tools") # Register ARIN tools if enabled if SUPPORT_ARIN: logger.info("ARIN support enabled - registering ARIN tools") from whois_mcp.tools.arin.contact_card import register as reg_arin_contact_card from whois_mcp.tools.arin.expand_as_set import ( register as reg_arin_expand_as_set, ) from whois_mcp.tools.arin.validate_route_object import ( register as reg_arin_validate_route, ) from whois_mcp.tools.arin.whois_query import register as reg_arin_whois tool_registrations.extend( [ reg_arin_whois, reg_arin_validate_route, reg_arin_expand_as_set, reg_arin_contact_card, ] ) else: logger.info("ARIN support disabled - skipping ARIN tools") # Future: Add other RIR tools here # if SUPPORT_APNIC: # from whois_mcp.tools.apnic.* import register as reg_* # tool_registrations.extend([...]) if not tool_registrations: logger.warning("No tools registered - all RIR support is disabled") return # Register each tool for tool in tool_registrations: try: logger.debug(f"Registering tool: {tool.__name__}") tool(mcp) logger.info(f"Successfully registered tool: {tool.__name__}") except Exception as e: logger.error(f"Failed to register tool {tool.__name__}: {str(e)}") raise # Create and configure the MCP server app = FastMCP("whois-mcp") register_tools(app)

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/dadepo/whois-mcp'

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