域名工具服务器

Tower是一个统一的MCP服务器,整合了多个域名工具项目,提供域名智能、DNS操作和参考数据访问。

  • by TheZacillac
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 TheZacillac/tower

使用说明

塔

一个统一的MCP服务器,整合了来自 先知 和 册.

Tower提供了一个单一的MCP(模型上下文协议)服务器,该服务器公开了来自多个域名实用程序项目的工具,使AI助手能够通过一个入口点访问域智能、DNS操作和参考数据。


目录


特性

特性 描述
统一MCP服务器 通过一个连接从Seer和Tome公开工具的单服务器
领域智能 通过Seer进行WHOIS、RDAP、DNS、传播和状态检查
参考数据 通过Tome获取TLD信息、DNS记录类型定义和术语表术语
捆绑技能 安装 卷轴 --Seer和Tome的AI代理技能定义
批量操作 任何Seer操作最多可同时处理100个域
模块化设计 每个工具源都是一个独立的模块,易于添加、删除或更新
22工具 通过单个调度表注册的13个Seer工具+9个Tome工具

建筑

┌─────────────────────────────────────────────────────────────┐
│                         tower-mcp                           │
│                    (MCP Server · stdio)                     │
├─────────────────────────────┬───────────────────────────────┤
│      tower/tools/seer.py    │      tower/tools/tome.py      │
│       (13 tools)            │        (9 tools)              │
└──────────┬──────────────────┴──────────────┬────────────────┘
           │                                 │
           ▼                                 ▼
┌─────────────────────┐          ┌─────────────────────┐
│     seer (Python)   │          │     tome (Python)   │
│    PyO3 bindings    │          │    PyO3 bindings    │
└──────────┬──────────┘          └──────────┬──────────┘
           │                                │
           ▼                                ▼
┌─────────────────────┐          ┌─────────────────────┐
│     seer-core       │          │     tome-core       │
│   (Rust library)    │          │   (Rust library)    │
└─────────────────────┘          └─────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                     scrolls (Python)                        │
│          AI agent skill definitions & reference docs        │
└─────────────────────────────────────────────────────────────┘

Tower是一个薄薄的编排层。所有业务逻辑都存在于上游Rust核心库中;Tower将其Python公开函数注册为MCP工具,并将调用路由到适当的处理程序。Scrolls为AI代理提供了配套的技能定义和参考文档。


安装

先决条件

来自源头

# Clone the repository
git clone https://github.com/TheZacillac/tower.git
cd tower

# Install with dependencies (assumes seer-py and tome-py are already built)
uv pip install -e .

如果seer、tome和rolls包未发布到PyPI,请从其本地路径安装它们:

uv pip install \
    -e /path/to/seer/seer-py \
    -e /path/to/tome/tome-py \
    -e /path/to/scrolls \
    -e .

这将安装MCP工具(seer、tome)、AI代理技能(卷轴)和Tower本身。

使用uvx(无需安装)

uvx --from /path/to/tower \
    --with /path/to/seer/seer-py \
    --with /path/to/tome/tome-py \
    --with /path/to/scrolls \
    tower-mcp

用法

启动服务器

tower-mcp

服务器在stdio传输上运行,使用模型上下文协议通过stdin/stdout进行通信。

Claude代码集成

添加到您的项目 .mcp.json:

{
  "mcpServers": {
    "tower": {
      "command": "uvx",
      "args": [
        "--from", "/path/to/tower",
        "--with", "/path/to/seer/seer-py",
        "--with", "/path/to/tome/tome-py",
        "--with", "/path/to/scrolls",
        "tower-mcp"
      ]
    }
  }
}

Claude桌面集成

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "tower": {
      "command": "tower-mcp"
    }
  }
}

可用工具

Seer工具

领域情报行动由 先知.

单域

工具 说明
seer_lookup 智能查找——首先尝试RDAP,然后退回WHOIS
seer_whois WHOIS注册数据
seer_rdap_domain RDAP域查找
seer_rdap_ip RDAP IP地址查找
seer_rdap_asn RDAP自治系统编号查找
seer_dig DNS记录查询(A、AAAA、MX、TXT、NS、SOA、CNAME、CAA、PTR、SRV、ANY)
seer_propagation 跨29个全球名称服务器的DNS传播检查
seer_status 域健康检查(HTTP、SSL、过期)

批量操作

工具 说明
seer_bulk_lookup 智能查找多个域
seer_bulk_whois WHOIS查找多个域
seer_bulk_dig 多个域的DNS查询
seer_bulk_status 多个域的健康检查
seer_bulk_propagation 多个域的传播检查

批量限制: 每个请求最多100个域,最多50个并发操作。

Tome工具

参考数据库查找由 册.

工具 说明
tome_tld_lookup 查找TLD——类型、注册表、WHOIS/RDAP服务器、DNSSEC、限制
tome_tld_search 按部分匹配搜索顶级域名
tome_record_lookup 按名称或数字代码查找DNS记录类型
tome_record_search 按部分匹配搜索DNS记录类型
tome_glossary_lookup 查找域名行业术语或缩写
tome_glossary_search 按部分匹配搜索术语表术语
tome_tld_overview 全面的顶级域名概述——连接所有相关数据
tome_tld_list_by_type 按类型列出顶级域名(gTLD、ccTLD、nTLD)
tome_tld_count 数据库中的TLD总数

捆绑技能

铁塔安装 卷轴,一组AI代理技能定义,提供有关Seer和Tome的上下文知识。技能包括参考文档、CLI命令指南和脚本示例。

技能 内容
先知 CLI参考、REST API端点、MCP工具、Python绑定、REPL指南、配置、脚本示例
册 TLD数据库、DNS记录类型、术语表 (进行中)

安装后可以通过编程访问技能:

import scrolls

scrolls.list_skills()                              # ['other/cdn-detection', 'other/email-auth', ..., 'seer', 'tome']
scrolls.skill_file("seer")                         # Path to seer/SKILL.md
scrolls.skill_file("seer", "reference/cli.md")     # Path to CLI reference

配置

塔没有自己的配置。工具行为由上游库决定:

设置 来源 默认值
批量域限制 塔 100
最大并发 塔 50
WHOIS超时 Seer 15秒
RDAP超时 Seer 30秒
DNS超时 Seer 5秒

添加工具模块

Tower旨在使添加新工具源变得简单。每个模块都遵循一个简单的合同:

  1. 在中创建新文件 tower/tools/ (例如。, tower/tools/newmodule.py)
  2. 出口A TOOLS 列表 mcp.types.Tool 定义
  3. 出口A handle(name, arguments) 异步函数
  4. 将模块导入 tower/tools/__init__.py

模块模板

"""Tool definitions and handlers for NewModule."""

from typing import Any
from mcp.types import Tool

TOOLS: list[Tool] = [
    Tool(
        name="newmodule_example",
        description="Description of what this tool does.",
        inputSchema={
            "type": "object",
            "properties": {
                "param": {
                    "type": "string",
                    "description": "Parameter description",
                },
            },
            "required": ["param"],
        },
    ),
]


async def handle(name: str, arguments: dict[str, Any]) -> Any:
    """Execute a NewModule tool and return the result."""
    match name:
        case "newmodule_example":
            # Call your library function here
            ...
        case _:
            raise ValueError(f"Unknown tool: {name}")

服务器通过自动发现所有工具 _TOOL_MODULES 列入 server.py 并在导入时构建调度表。没有更改 server.py 除了将您的模块添加到该列表之外,还需要其他功能。


发展

设置

git clone https://github.com/TheZacillac/tower.git
cd tower

# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate

# Install with dev dependencies
pip install \
    -e /path/to/seer/seer-py \
    -e /path/to/tome/tome-py \
    -e /path/to/scrolls \
    -e ".[dev]"

运行测试

pytest

验证服务器

# Check that all tools load without errors
python -c "from tower.server import mcp; print('OK')"

# List all registered tools
python -c "
from tower.tools import seer, tome
for t in seer.TOOLS + tome.TOOLS:
    print(f'  {t.name}')
"

项目结构

tower/
├── README.md               # This file
├── pyproject.toml           # Package configuration and entry points
├── .mcp.json                # MCP server launch configuration
├── .gitignore
└── tower/
    ├── __init__.py          # Package metadata
    ├── server.py            # MCP server — tool registration and call routing
    └── tools/
        ├── __init__.py      # Tool module registry
        ├── _helpers.py      # Shared validation (require_str, require_domains, etc.)
        ├── seer.py          # Seer tool definitions and handlers (13 tools)
        └── tome.py          # Tome tool definitions and handlers (9 tools)

技术栈

依赖性 目的
MCP-SDK 模型上下文协议服务器框架
先知 域智能(WHOIS、RDAP、DNS、状态)
册 参考数据(TLD、记录类型、术语表)
卷轴 Seer和Tome的AI代理技能定义
孵化 Python构建后端

许可证

MIT许可证

版权所有(c)2026扎克·罗奇

特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:

上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。

软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。