mcpbeat Sign in

Signallayer Backlinks Client Agent Skill

使用 SignalLayer.io 的真实 OpenClaw API 创建、查询和分页管理外链 Campaign。适用于用户要求配置 SignalLayer API Key、查询积分、创建外链任务、查看任务状态或列出 Campaign;客户端未指定数量时默认 200,但服务端 linkCount 始终必填。

8k tokens
context cost
the whole folder, loaded on every use
7
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
311
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/kennyzir/7deer_skills --skill signallayer-backlinks-client

What comes with it

29 996 bytes besides the instruction
OPERATION-GUIDE.md
README.md
SETUP.md
references/api.md
scripts/signallayer_client.py
tests/test_signallayer_client.py

The instruction itself

2 sections, as written by the author

安全规则

  • 优先从 SIGNALLAYER_API_KEY 环境变量读取 Key。
  • 不在回复、日志或 Campaign 历史中回显完整 Key。
  • 仅在用户明确选择兼容模式时,才保存到 memory/signallayer-api-user.md;提醒这是明文文件且不得提交 Git。
  • 配置后必须调用 GET /credits 真实验证。仅检查 sl_ 前缀不算验证成功。

API 契约

Base URL:https://signallayer.io/api/openclaw

| 操作 | 方法与路径 |

|------|------------|

| 查询积分 / 验证 Key | GET /credits |

| 创建 | POST /create-campaign |

| 查询单个任务 | GET /campaign-status/{id} |

| 查询任务列表 | GET /campaigns?limit=20&offset=0 |

认证 Header:Authorization: Bearer <USER_API_KEY>

创建流程

  • 获取 API Key 并调用 /credits
  • 从用户请求提取参数:
  • targetUrl:必填。
  • brandName:API 必填;用户未提供时,可从目标 hostname 生成候选值并明确告知用户。
  • linkCount:API 必填;用户未指定时客户端使用 200。
  • keywords:可选,默认空字符串。
  • strategysafety(默认)、neutralaggressive
  • speednatural(默认)、standarddrip
  • dripDaysdrip 时为 10–30,默认 14。
  • 调用:
POST https://signallayer.io/api/openclaw/create-campaign
Authorization: Bearer <USER_API_KEY>
Content-Type: application/json

{
  "targetUrl": "https://example.com",
  "brandName": "Example",
  "keywords": "seo,marketing",
  "linkCount": 200,
  "strategy": "safety",
  "speed": "natural",
  "dripDays": 14,
  "source": "openclaw-skill"
}
  • 创建成功必须按 HTTP 201 和 success: true 判断。Campaign ID 位于 campaign.id
  • 只记录非敏感 Campaign 元数据。

状态与列表

状态响应的进度位于:

{
  "campaign": {
    "progress": {
      "total": 200,
      "completed": 85,
      "pending": 115,
      "percent": 43
    }
  }
}

不要读取不存在的顶层 completedtotalcampaign_idupdatedAt 或预计完成时间。

列表接口默认返回 20 条,limit 最大为 100。它是 Campaign 分页数量,与每个 Campaign 的外链数量无关。

计费与速度

  • 当前计费:1 条外链 = 1 积分
  • aggressive 不按 1.5 倍扣积分。
  • API 不支持 instant,不得发送或向用户推荐该值。
  • natural/standard 进入正常 Agent 队列;drip 生成 10–30 天的日期排期。
  • API 不返回 SLA 或预计完成日期,不要自行承诺。

错误处理

读取 HTTP 状态和 JSON 中的 codeerror、可选 field

  • 400:参数或 Campaign ID 格式错误。
  • 401:Key 缺失或无效。
  • 402:积分不足。
  • 404:任务不存在或不属于当前 Key。
  • 500:服务端创建、列表或状态查询失败。

遇到 HTML 响应时,优先检查是否误用了 api.signallayer.io/v1/campaigns/{id} 等旧路径。

独立客户端

优先使用仓库脚本,避免手写漂移的请求:

python scripts/signallayer_client.py --credits
python scripts/signallayer_client.py --target "https://example.com" --brand "Example"
python scripts/signallayer_client.py --status "campaign_uuid"
python scripts/signallayer_client.py --list

完整契约见 references/api.md,排查流程见 OPERATION-GUIDE.md

How to use it

Copy the folder

Take kennyzir/signallayer-backlinks-client from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.