将 Packetrove 接入 AI 智能体
连接兼容 MCP 的客户端来使用 Packetrove 网络工具。先按下方步骤接入,再参考工具示例。
Streamable HTTP · 无需账户或 API 密钥
https://api.dev.packetrove.com/mcp
连接客户端
安装 Claude Code 或 Codex 后,添加这个远程服务器。以下命令配置客户端,不会安装本地 Packetrove 服务器。
Claude Code
claude mcp add --transport http --scope user packetrove \ https://api.dev.packetrove.com/mcpClaude Code MCP 官方文档
在客户端中使用 /mcp 检查连接。确认以下工具可用:cidr-cover, cidr-subtract, range-to-cidrs, certificate-bundle, public-ip。
完成配置后,客户端通过 tools/list 发现工具,并根据工具描述和参数结构选择调用。阅读网页不会自动配置客户端或授予工具访问权限。
服务器身份信息
服务器提供以下服务身份信息,版本随发布版本更新。每个工具的名称、描述和参数结构由 tools/list 单独列出。
{
"name": "Packetrove",
"title": "Packetrove",
"description": "Open-source IP address and CIDR tools for network calculations and public IP lookup.",
"websiteUrl": "https://dev.packetrove.com",
"icons": [
{
"src": "https://dev.packetrove.com/packetrove-logo-32x32.png",
"mimeType": "image/png",
"sizes": [
"32x32"
]
}
],
"version": "0.5.0"
}客户端自行决定是否显示标题、简介、官网或图标,也可以忽略可选字段。协议发现成功不代表客户端会展示这些信息。PNG 图标为 32×32,没有主题限制。
读取结果与处理错误
读取 structuredContent,或解析文本内容块中的 JSON。地址计数应保留为十进制字符串或任意精度整数;将很大的 IPv6 计数转换为浮点数会丢失精度。
成功响应会保留 structuredContent 和第一个 JSON 文本内容块中的结果,再附上一个指向英文工具页面的可选 resource_link。链接不含输入或结果,也不会恢复你的计算。是否显示、忽略或打开链接由客户端决定,不保证自动展示或引用。打开公网 IP 页面会检查浏览器的新连接,可能与 MCP 调用者的连接不同。错误响应不附工具页面链接。
isError 为 true 时,先读取错误 JSON,再决定是否重试。根据用户提供的信息修正 INVALID_INPUT 和 MIXED_ADDRESS_FAMILIES。CLIENT_IP_UNAVAILABLE 表示缺少可信的连接信息,请勿推测地址。
业务错误使用共享的错误 JSON。MCP SDK 处理协议校验错误。无效 JSON、不支持的媒体类型和过大的请求体会在 HTTP 层被拒绝。
运行 Node.js 示例
在新目录中,将下方代码保存为 packetrove-example.mjs,再运行命令。示例使用 @modelcontextprotocol/client@2.0.0,发现工具,并用文档专用地址调用覆盖 CIDR 工具。
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';
const client = new Client(
{ name: 'packetrove-example', version: "0.5.0" },
{ versionNegotiation: { mode: 'auto' } },
);
try {
await client.connect(new StreamableHTTPClientTransport(new URL("https://api.dev.packetrove.com/mcp")));
const serverInfo = client.getServerVersion();
const { tools } = await client.listTools();
const result = await client.callTool({
name: "cidr-cover",
arguments: {"inputs":["203.0.113.1","203.0.113.2","203.0.113.6"]},
});
if (result.isError) throw new Error(JSON.stringify(result.content));
console.log(serverInfo, tools.map(tool => tool.name), result.structuredContent);
const links = result.content?.filter(content => content.type === 'resource_link') ?? [];
console.log(links); // Optional links; opening or presenting them is the client's choice.
} finally {
await client.close();
}npm init -y npm install @modelcontextprotocol/client@2.0.0 node packetrove-example.mjs
本地开发时,启动 pnpm dev:api,并将示例中的服务器地址改为 http://localhost:8787/mcp。
部署与连接限制
服务器支持现代无状态请求,以及旧版 Streamable HTTP 的初始化、工具发现和调用;不提供持久会话或独立的服务器事件流。
每次工具调用分别读取公网 IP 连接信息,并为并发客户端隔离服务器实例。MCP 结果和错误使用 Cache-Control: no-store, no-transform。应用不保存或记录查询地址。
我们通过运营事件统计工具执行次数,事件包含工具名称、成功或错误状态、受控错误代码和调用来源分类。经过验证的自动检查还可能记录运行编号。事件不包含输入、结果、查询到的地址、原始请求头或自动检查令牌。Cloudflare 可能附加请求元数据;数据处理和保留期限见隐私政策。
旧工具名称没有兼容别名:smallest_covering_cidr → cidr-cover, subtract_cidrs → cidr-subtract, get_public_ip → public-ip。请刷新工具发现,并更新已保存的调用。
网站的 /mcp 路径不是服务端点:GET 返回 404,POST 返回 405,不会代理或重定向工具调用。请将客户端配置为 https://api.dev.packetrove.com/mcp。自建部署需更新域名及各自的 Host 与浏览器 Origin 精确允许列表;支持不带 Origin 请求头的非浏览器客户端。