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)以提升实时性与稳定性。
- 增强工具注册的灵活性与可扩展性,支持更多类型的工具与响应格式。