DNS-AID MCP 服务器

使用说明(Markdown 要点版)

  • 项目简介

    • DNS-AID 的 MCP 服务器是在 DNS-AID 组件之上实现的后端服务,负责暴露并管理代理资源、注册和执行工具、以及提供与 LLM 客户端的上下文信息交互能力。
    • 服务器通过 MCP 协议接收 JSON-RPC 请求,返回 JSON-RPC 响应,并支持多种传输方式(如标准输入输出、HTTP 等)。
  • 主要功能点

    • 发布与管理 Agents:将代理(Agent)通过 MCP 记录发布到 DNS/后端存储,包含 SVCB 绑定、TXT 元数据、TTL 等控制。
    • 发现与查询 Tools:提供发现已发布代理、列出、验证等工具,便于 LLM 客户端在运行时选择目标代理。
    • 工具执行与代理调用:支持远程代理工具的调用、结果回传与基本的错误处理。
    • 安全性与可扩展性:集成 DNS-/capability 校验、可选的 HTTP 索引发现、以及对扩展工具的注册和调用接口。
    • MCP 传输多样性:默认 stdio 传输,亦支持 HTTP 传输等扩展场景。
  • 安装步骤

    • 基础安装
      • 使用 Python 环境安装 DNS-AID 的 MCP 组件与依赖。
    • 启动 MCP 服务器(STDIO 传输为默认)
      • dns-aid-mcp
    • 也可通过 HTTP 传输启动
      • dns-aid-mcp --transport http --port 8000
  • 服务器配置(MCP 客户端所需信息)

    • 说明:MCP 客户端需要知道服务器的启动命令和参数以建立连接。配置信息采用 JSON 格式,包含服务器名称、启动命令及参数等。以下信息仅用于 MCP 客户端配置示意,实际运行时不需要客户端代码。
    • 示例配置(JSON 格式,字段含义在后述注释中说明):
    • {
    • "server_name": "dns-aid",
    • "command": "dns-aid-mcp",
    • "args": ["--transport", "stdio"]
    • }
    • 注释说明:
      • server_name: MCP 服务器在客户端侧的标识名称,便于区分多服务器场景。
      • command: 启动 MCP 服务器的可执行程序名称,通常为 dns-aid-mcp(若使用包装脚本/CLI 则对应实际入口)。
      • args: 启动参数数组,示例为使用 stdio 传输。若改用 HTTP 传输,请将 args 调整为 ["--transport", "http", "--port", "8000"],以开启 HTTP 服务。
  • 基本使用方法

    • 启动后,MCP 客户端(如 Claude Desktop、LangChain 集成、SDK 调用方等)可以通过 MCP 协议向服务器发起请求,执行 publish/discover/verify 等操作。
    • 客户端需要基于 MCP 的 JSON-RPC 规范发送请求,服务器返回相应的 JSON-RPC 响应。
    • 常见工作流示例:
      • 将一个代理发布到 DNS-AID,供其他代理发现与调用。
      • 使用发现工具定位某域下的代理并获取可用工具清单。
      • 通过调用工具实现跨代理的协作任务。
  • 运行与维护要点

    • 确保后端 DNS 记录与所使用的后端服务(Route53、Cloudflare、Infoblox、DDNS、Mock 等)配置正确并可访问。
    • 根据需要开启 HTTP 传输,便于某些环境下的 MCP 客户端连接。
    • 如需从 Claude 等客户端集成,请参考提供的 Live Demo 配置及集成示例,确保客户端能正确识别服务器名称、命令及参数。
  • 进一步扩展

    • 支持更多传输协议(如 WebSocket、SSE)以提升实时性与稳定性。
    • 增强工具注册的灵活性与可扩展性,支持更多类型的工具与响应格式。

服务器信息