Community研究与数据分析github.com

Alpha018/alpha-skills

家庭实验室自动化技能包,适用于 skills.sh 的 Agent 技能及基于它们构建的 MCP 服务器。

alpha-skills 是什么?

alpha-skills 是一个面向家庭实验室自动化的技能包,专为 skills.sh 平台设计,并包含基于这些技能构建的 MCP(模型上下文协议)服务器。它通过提供一组模块化、可重用的技能来简化常见自动化任务,例如智能家居设备控制、媒体服务管理、网络监控和文件系统操作。每个技能都封装了特定功能,并暴露为清晰的接口,使 AI Agent(如 Claude Code、Cursor、Codex)能够直接调用它们。该技能包支持跨平台部署,包括 Linux、macOS 和 Windows,并通过 MCP 服务器与更广泛的 AI 工具生态系统集成。其设计理念强调声明式配置和低摩擦集成,使开发者能够快速搭建自动化工作流,而无需关注底层实现细节。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add Alpha018/alpha-skills

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

NextDNS API

概述

NextDNS 通过 REST API 公开了仪表板中所有可配置的功能: 每个配置文件的 安全/隐私/家长控制 开关、阻止/允许 列表、 日志记录设置、分析数据和原始 DNS 查询日志。没有官方 SDK —— 一切都基于纯 HTTPS + JSON,因此自然适用于 curl/脚本/ HTTP 客户端,无论调用者使用哪种语言或工具。

  • 基础 URL:https://api.nextdns.io
  • 认证:请求头 X-Api-Key: <key>(密钥在 https://my.nextdns.io/account)
  • 所有资源都在配置文件范围内:/profiles/:profile/...
  • 成功响应:{"data": ..., "meta": {...}}。错误响应:{"errors": [{"code", "detail", "source"}]}

你可以用这个 API 构建什么

NextDNS 仪表板能做的所有事情都可以通过这里实现,这开启了几类常见的任务:

  • 配置即代码 —— 创建一个配置文件并将其完整的 安全/隐私/家长控制/设置 配置从 JSON/YAML 文件推送, 使 DNS 配置文件可以版本控制和复现,而不是手动点击配置。
  • 批量列表管理 —— 通过 PUT 全量替换或逐条 POST/PATCH/DELETE 端点, 将阻止列表或允许列表与外部来源(维护的块列表、CSV、其他系统的导出)同步。
  • 按计划/条件切换 —— 按计划或触发条件翻转设置,例如在特定时段 启用更严格的 parentalControl 类别,或根据外部事件切换 settings.web3/security.* 标志。
  • 监控和告警 —— 轮询 analytics/*(状态、被阻止的顶级域名/设备、原因)以构建 仪表板或告警,例如当阻止查询量激增或新设备开始产生流量时发送通知。 ;series 时间序列变体使其对图表生成友好。
  • 日志尾随和导出 —— 使用 /logs/stream(SSE)在终端或日志管道中实时跟踪查询, 或 /logs/download 拉取完整导出以供离线分析/存档。
  • 审计/合规检查 —— 定期 GET 配置文件的完整配置并与预期基线对比差异 以捕获漂移(例如有人在仪表板中关闭了某个安全开关)。
  • 多配置文件集群 —— 对许多 :profile ID 执行相同操作, 适合从一处同时管理多个网络/家庭/站点的 NextDNS。

何时使用

  • 读取或写入阻止/允许列表条目、安全/隐私开关、家长控制服务/类别或配置文件范围的设置。
  • 拉取分析数据(顶级域名、设备、协议、阻止原因、地理位置)或原始/流式查询日志,包括时间序列细分。
  • 构建或调试任何与 api.nextdns.io 通信的脚本/自动化工具 —— curl、配置管理工具、cron 任务、仪表板、聊天/CLI 机器人。
  • 在对某个重要功能依赖此技能之前,验证此技能捆绑的参考文档与实时文档仍然一致。

快速参考

区域基础路径主要操作
配置文件/profiles/:profileGET、PATCH(部分更新)、DELETE;POST /profiles 创建
安全/profiles/:profile/security开关 + tlds 列表
隐私/profiles/:profile/privacyblocklists、natives、开关
家长控制/profiles/:profile/parentalControlservices、categories(支持 PUT 全量替换)、安全搜索开关
阻止列表 / 允许列表/profiles/:profile/denylist | /allowlistGET/PUT/POST/PATCH/DELETE,条目 {id, active}
设置/profiles/:profile/settingslogs、blockPage、performance、web3
分析/profiles/:profile/analytics/<dim>status、domains、reasons、ips、devices、protocols、queryTypes、ipVersions、dnssec、encryption、destinations;追加 ;series 以获取时间桶
日志/profiles/:profile/logs列表、/stream(SSE)、/download、DELETE 清除

完整的参数表、每个 JSON 模式以及每个示例响应都在 references/api-reference.md 中——在编写任何非平凡调用(任何超出单个 GET 的操作)之前请先阅读它,以便正确获取字段名称、枚举和默认值,而不是猜测并反复与实时 API 来回验证。

机器可读的 references/openapi.yaml(OpenAPI 3.0,包含从 api-reference.md 移植的响应示例)提供了相同的端点——如果你正在生成客户端、将其提供给代码生成工具或想要一个结构化的差异比较表面,请使用它。对于人类可浏览的版本,打开 references/openapi.html(一个预渲染的静态 Redoc 页面,来源于规范——按标签分组、可搜索、内嵌示例)而不是读取原始的 YAML。

常见模式

curl 示例(列出阻止列表):

curl -sH "X-Api-Key: $NEXTDNS_API_KEY" \
  "https://api.nextdns.io/profiles/$PROFILE_ID/denylist"

将一个域名添加到阻止列表:

curl -sH "X-Api-Key: $NEXTDNS_API_KEY" -H "Content-Type: application/json" \
  -X POST "https://api.nextdns.io/profiles/$PROFILE_ID/denylist" \
  -d '{"id": "badsite.com", "active": true}'

切换一个安全设置:

curl -sH "X-Api-Key: $NEXTDNS_API_KEY" -H "Content-Type: application/json" \
  -X PATCH "https://api.nextdns.io/profiles/$PROFILE_ID/security" \
  -d '{"cryptojacking": true}'

当只更改一个区域时,优先在作用域子资源(例如 /security、/settings/logs)上使用 PATCH 而不是对整个配置文件使用 PATCH——这样更难意外地覆盖无关字段。

对于分页(analytics/*、logs),从响应中拉取 meta.pagination.cursor 并将其作为 ?cursor=... 传递到下一个请求;null/缺失的光标表示最后一页。完整的日期格式和时间序列(;series、interval、alignment、timezone)规则在 references/api-reference.md#time-series 中。

保持参考文档的更新

没有官方的上游 OpenAPI 文件可以对比——NextDNS 在 https://nextdns.github.io/api/ 的文档是手写的 HTML。如果需要检查 API 更新,或者在高风险任务中依赖此技能之前,请获取该页面并与 references/api-reference.md 和 references/openapi.yaml 进行比较;如果发现任何漂移,同时更新两者(历史上,新的分析维度和新的设置/安全/隐私开关是发生变化的部分)。有关完整流程,请参见 references/api-reference.md 底部的“保持更新”部分。

编辑 references/openapi.yaml 后,运行 scripts/render-docs.sh——它会检查规范(在 YAML/模式错误到达读者之前捕获它们)并根据规范重新生成 references/openapi.html。将重新生成的 HTML 与 YAML 编辑一起提交,以确保两者不会不同步。

相关技能