{"id":"19ab2386-e376-48fe-b7e4-cea609ec66ca","entityType":"agent","slug":"clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting","name":"Serpzilla SEO Guest Posting Skill for OpenClaw","canonicalUrl":"https://www.xpersona.co/agent/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting","canonicalPath":"/agent/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting","generatedAt":"2026-10-14T02:37:39.832Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:18:02.965Z","emptyReason":null},"description":"Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 969 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17b0ks60apjwnefzpywnwwhsx863h7w:serpzilla-seo-guest-posting","sourceUrl":"https://clawhub.ai/stanislav-reshetnev/serpzilla-seo-guest-posting","homepage":"https://clawhub.ai/stanislav-reshetnev/skills/serpzilla-seo-guest-posting","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/stanislav-reshetnev/serpzilla-seo-guest-posting","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/stanislav-reshetnev/skills/serpzilla-seo-guest-posting","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Serpzilla SEO Guest Posting Skill for OpenClaw technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:18:02.965Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:18:02.965Z","emptyReason":null},"stars":null,"forks":null,"downloads":969,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.3","tractionLabel":"969 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:18:02.820Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T00:18:02.965Z","lastCrawledAt":"2026-10-12T00:18:02.820Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T00:18:02.820Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.3","createdAt":"2026-06-02T17:48:01.821Z","changelog":"site_url search parameter added","fileCount":5,"zipByteSize":8877},{"version":"1.0.2","createdAt":"2026-05-14T15:22:02.962Z","changelog":"ClawScan audit fixes","fileCount":5,"zipByteSize":8938},{"version":"1.0.1","createdAt":"2026-05-14T14:50:15.828Z","changelog":"Sudo usage removed","fileCount":4,"zipByteSize":7161},{"version":"1.0.0","createdAt":"2026-05-05T12:04:00.511Z","changelog":"Initial release","fileCount":4,"zipByteSize":7166}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17b0ks60apjwnefzpywnwwhsx863h7w:serpzilla-seo-guest-posting","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17b0ks60apjwnefzpywnwwhsx863h7w:serpzilla-seo-guest-posting` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/stanislav-reshetnev/serpzilla-seo-guest-posting before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-14T02:37:39.830Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-stanislav-reshetnev-serpzilla-seo-guest-posting/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:18:02.965Z","emptyReason":null},"readme":"Skill: Serpzilla SEO Guest Posting Skill for OpenClaw\n\nOwner: stanislav-reshetnev\n\nSummary: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform\n\nTags: latest:1.0.3\n\nVersion history:\n\nv1.0.3 | 2026-06-02T17:48:01.821Z | user\n\nsite_url search parameter added\n\nv1.0.2 | 2026-05-14T15:22:02.962Z | user\n\nClawScan audit fixes\n\nv1.0.1 | 2026-05-14T14:50:15.828Z | user\n\nSudo usage removed\n\nv1.0.0 | 2026-05-05T12:04:00.511Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.3: 5 files, 8877 bytes\n\nFiles: README.md (1678b), references/placement_actions.md (5921b), skill-card.md (2264b), SKILL.md (12147b), _meta.json (146b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: serpzilla-seo-guest-posting\ndescription: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform\nversion: 1.0.0\nauthor: Stanislavus\nuser-invocable: true\ntriggers:\n  - buy guest post for SEO\n  - find donor site for guest posting\n  - serpzilla search donors\n  - configure serpzilla mcp\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🦖\",\n        \"requires\":\n          {\n            \"bins\": [\"mcporter\"],\n            \"env\": [\"SERPZILLA_LOGIN\", \"SERPZILLA_API_TOKEN\"],\n          },\n        \"primaryEnv\": \"SERPZILLA_API_TOKEN\",\n      },\n  }\n---\n\n# Serpzilla SEO Guest Posting\n\n## Description\n\nThis skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.\nIt allows you to automate the search and purchase of guest posts (article placements on donor sites \nthat pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done \nvia the Serpzilla MCP server, managed by the `mcporter` tool.\n\n## Prerequisites\n\nThe following components must be installed and configured on the server where OpenClaw runs:\n\n1. **Docker** – to run the Serpzilla MCP server in an isolated container.\n2. **Node.js and npm** – to install and run `mcporter`.\n3. **OpenClaw** – the agent runtime environment.\n\nBefore using any Serpzilla commands, verify the MCP server is already registered with `npx mcporter list serpzilla`.\n\n## Preliminary Setup\n\nTo fully use this skill, you need to register and configure the connection to the Serpzilla API.\n\n### 1. Registration and API token\n\n1. Register as an advertiser on [Serpzilla.com](https://serpzilla.com/).\n2. Go to the security section at [https://passport.serpzilla.com/security/token/](https://passport.serpzilla.com/security/token/).\n3. Copy your **API token** and remember your **login** (email) used for registration.\n\n### 2. Install mcporter and add the Serpzilla MCP server\n\n`mcporter` is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.\n\n**Install mcporter globally:**\n```bash\nnpm install -g mcporter\n```\n\nAdd the Serpzilla MCP server:\n\nIt is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN\n(the user's chosen login for registering with serpzilla.com, usually an email address)\nand SERPZILLA_API_TOKEN (the API token received by the user).\nRun the following command, replacing XXX and YYY with user's values:\n\n```bash\nnpx mcporter config add serpzilla --stdio \"docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:v1.0.8\"\n```\n\n### 3. Verify the configuration\n\nCheck that the MCP server was added successfully:\n\n```bash\nnpx mcporter list serpzilla\n```\n\n## Using the skill\n\nAfter completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing\na guest post is described below.\n\nThe main entities in the Serpzilla domain for purchasing Guest Posts are:\n\n- *Project* - a container for the entities listed below. To begin posting, you must create a project. A project is \n  created for a specific domain, but there are no restrictions on promoting other domains within the project.\n- *URL* - the address of the page being promoted for SEO. Guest Post placements will be purchased to promote this \n  page. The URL is linked to the project.\n- *Article* - the article to be posted on donor sites. It can be uploaded to the Serpzilla system for use when \n  purchasing placements. After uploading to Serpzilla, articles are reviewed by moderators. For this reason, Articles have statuses. Articles are linked to the project.\n- *Text* - the anchor for the link being posted on the donor page/site. If the user uploads an Article, the Text and \n  URL for the promotion are determined automatically. Text is linked to the project.\n- *Content* - a general entity for Article and Content. It also has its own system for transitioning between statuses.\n- *Placement* - the Guest Post placement being purchased. Placement has a workflow that is reflected in the status \n  transition. Placement is linked to Text and URL.\n\nDescription of placement types:\n\n| Format    | Type                              | Content Provided By          | Required Fields When Buying | Notes                                                                                                 |\n|-----------|-----------------------------------|------------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------|\n| `news`    | Advertiser’s Article (Guest Post) | Advertiser (client)          | `article_id`, `url_id`      | `text_id` not required. The article is fully provided by the client.                                  |\n| `review`  | Publisher’s Article (Guest Post)  | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes a review article. This placement is **more expensive**.                          |\n| `link`    | In The News (Link Insertion)      | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes an article — not a review, but a link naturally embedded into a site news piece. |\n| `archive` | In The Archive (Link Insertion)   | N/A (article already exists) | `url_id`, `text_id`         | Placement occurs in an already existing article on the site.                                          |\n\n\nTo get current user information including account balance:\n\n```bash\nnpx mcporter call serpzilla.get_user_info\n```\n\nTo top up user's balance, refer user to visit: https://passport.serpzilla.com/deposit/\n\n### Step 1: Create a project for your promoted website\n\nCreate a project inside Serpzilla for your domain. Replace **YOUR_SITE.COM** with your actual website URL\n(without `https://`):\n\n```bash\nnpx mcporter call serpzilla.create_project domain=YOUR_SITE.COM\n```\n\n*Important:* Save the returned **PROJECT_ID** (ID field) – you will need it later.\n\nWhen a project is created, Serpzilla automatically generates:\n\n- One **URL** entity with the `domain` as the URL (e.g., https://YOUR_SITE.COM)\n- One **Text** entity with the domain name as the default anchor\n\nYou can later add more URLs and Texts for specific landing pages and anchors.\n\nTo view all your existing projects:\n\n```bash\nnpx mcporter call serpzilla.list_projects\n```\n\n### Step 2. Content preparation\n\nYou must upload an article **before** purchasing a placement. The article will be reviewed by Serpzilla moderators.\nOnly `approved` articles can be used for placements.\n\n**Add an article:**\n\n```bash\nnpx mcporter call serpzilla.add_article project_id=PROJECT_ID url='FULL_URL' title='ARTICLE_TITLE' \\\nmeta_title=\"ARTICLE_META_TITLE\" body='ARTICLE_BODY'\n```\n\nParameters:\n\n- `url` – the full promotion URL (including `https://`), e.g., https://yoursite.com/product\n- `title` – internal title of the article (visible only in Serpzilla UI)\n- `meta_title` – meta title used by the publisher when posting\n- `body` – HTML content of the article, with your backlink(s) already inserted\n\n**Article moderation:**\n\n- After upload, the article status will be `pending`.\n- Moderation usually takes 1–2 business days.\n- If approved, status changes to `approved`; you can then use it in purchases.\n- If rejected, check the reason and re-upload a corrected version.\n\nCheck article status:\n\n```bash\nnpx mcporter call serpzilla.get_project_content_list project_id=PROJECT_ID\n```\n\n**For `review`, `link`, `archive` formats**\n\nNo article upload is needed. Serpzilla will use the `text_id` (anchor) and `url_id` (promoted page).\nThe webmaster writes the content according to the format.\n\n### Step 3: Search for donor sites\n\nWith your **PROJECT_ID**, you can search for available donor sites that accept your desired placement type.\n\n**Basic search command:**\n\n```bash\nnpx mcporter call serpzilla.search_sites project_id=PROJECT_ID link_type=link\n```\n\nValid link_type values: `news`, `review`, `link`, `archive`.\n\n**See all available filters (language, price range, DR, etc.):**\n\n```bash\nnpx mcporter list serpzilla --schema --json\n```\n\n**Get detailed information about a specific donor site:**\n\n```bash\nnpx mcporter call serpzilla.get_site_info site_id=SITE_ID\n```\n\nThis returns metrics (DR, traffic, language), status, price, placement examples, and more.\n\n### Step 4. Buying Guest Posts\n\n**IMPORTANT — User confirmation required before any purchase.**\n\nBefore executing a purchase, the agent MUST:\n\n1. Call `get_user_info` to retrieve the current account balance.\n2. Call `get_site_info site_id=SITE_ID` to retrieve the price for the selected donor site.\n3. Present the following information to the user:\n   - Site URL and price\n   - Current account balance\n   - Remaining balance after purchase (balance - price)\n4. Ask the user for **explicit confirmation** to proceed with the purchase.\n5. Only execute `purchase_placement` after receiving the user's confirmation.\n\nIf the user does not confirm, do NOT proceed with the purchase.\n\nOnce you have:\n- `PROJECT_ID`\n- `SITE_ID` (from search results)\n- For `news`: `article_id` (approved) and `url_id`\n- For `review`, `link`, `archive`: `url_id` and `text_id`\n\n**Important:** The `search_history_id` parameter must always be set to an empty string `\"\"` when buying.\n\n#### Examples for each format:\n\n**4.1 Purchase a `news` placement (Advertiser’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=news \\\n  site_id=SITE_ID article_id=ARTICLE_ID url_id=URL_ID search_history_id=\"\"\n```\n\nOptional: `is_content_need_approval=true` – if set, the placement will wait for your approval before the publisher starts.\nUseful if you want to review the final context.\n\n**4.2 Purchase a `review` placement (Publisher’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=review \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.3 Purchase a `link` placement (In The News – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=link \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.4 Purchase an `archive` placement (In The Archive – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=archive \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\nTo view purchased placements use:\n\n```bash\nnpx mcporter call serpzilla.get_project_placements project_id=PROJECT_ID\n```\n\n### Step 5. Managing Purchased Placements\n\n**IMPORTANT — User confirmation required before any placement action.**\n\nMany placement actions have financial implications:\n- `approve_seo` / `approve_content_seo` — releases funds to the publisher\n- `cancel_seo` / `cancel_from_*` — may trigger refunds or forfeiture\n- `terminate_seo` — permanently removes an approved backlink\n- `approve_from_arbitration_seo` — resolves a dispute in your favour\n\nBefore executing any `perform_placement_action`, the agent MUST:\n\n1. Inform the user about the action being taken and its financial impact.\n2. Ask the user for **explicit confirmation** to proceed.\n3. Only execute the action after receiving the user's confirmation.\n\nIf the user does not confirm, do NOT proceed with the action.\n\nAfter you purchase a placement, its lifecycle is managed through a set of statuses and transitions. \nYou can perform specific actions to influence the placement's progress, request changes, cancel orders, \nor handle edge cases like billing or failed purchases.\n\nAll actions are executed using the MCP tool:\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placement_ids=PLACEMENT_ID action=ACTION_NAME\n```\n\nThe [table by link](references/placement_actions.md) lists every SEO‑available action. \nFor each action we describe its purpose, the source status(es), the target status, and any relevant notes.\n\n\n## Additional resources\n\n* [Serpzilla API Documentation](https://serpzilla.com/api/)\n\nFile v1.0.3:README.md\n\n# Serpzilla SEO Guest Posting Skill for OpenClaw\n\nThis skill enables [OpenClaw](https://github.com/openclaw) agents to automate the purchase of guest posts and\nlink insertions via the [Serpzilla](https://serpzilla.com) platform. It provides a structured workflow for\nSEO specialists to search donor sites, manage content, buy placements, and control the entire backlink\nacquisition process.\n\n## Features\n\n- Create projects for your promoted websites  \n- Search and filter donor sites by price, DR, language, etc.  \n- Upload articles for moderation (`news` format)  \n- Buy four types of placements:  \n  - `news` – advertiser’s article (guest post)  \n  - `review` – publisher’s written review article  \n  - `link` – natural link insertion into a news article  \n  - `archive` – link placed into an existing article  \n- Manage purchased placements (approve, cancel, request teardown, etc.)\n\n## Prerequisites\n\n- [OpenClaw](https://github.com/openclaw) agent environment  \n- [mcporter](https://github.com/modelcontextprotocol/mcporter) – MCP server manager  \n- **Docker** – runs the Serpzilla MCP server  \n- **Node.js / npm** – to install `mcporter`\n\n## Repository contents\n- `SKILL.md` – the complete skill definition, including all steps, entity descriptions, and management actions.\n- `references/placement_actions.md` – detailed reference of SEO‑available placement actions\n  (approve_seo, cancel_seo, terminate_seo, etc.).\n\n## See also\n\n* The Serpzilla MCP server Docker image is available at https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags\n* The MCP server source code: https://github.com/stanislav-reshetnev/serpzilla-mcp-server\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn79nhg733pyyfyeymxf0yt6g5862s82\",\n  \"slug\": \"serpzilla-seo-guest-posting\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1780422481821\n}\n\nFile v1.0.3:references/placement_actions.md\n\n# SEO Actions for Managing Placements (Serpzilla)\n\nThe table below lists all available actions for the `serpzilla.perform_placement_action` tool.\n\n| Action name                    | Description\t                                                                                                | From status(es)\t                                                                                | To status\t                       | Notes                                                                                                                       |\n|--------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `approve_seo`                  | Approve a placement after you have reviewed the live page. Marks the placement as successfully completed.   | `STATUS_PLACEMENT_CHECK`                                                                        | `STATUS_APPROVED`                | \tOnly possible when the placement is in the final check stage.                                                              | \n| `approve_content_seo`          | Accept the content provided by the webmaster (for formats where content approval is required).              | `STATUS_ON_CONTENT_APPROVAL`, `STATUS_PLACEMENT_ARBITRATION`                                    | `STATUS_ON_PLACEMENT_GUARANTEED` | After approval the placement moves to a guaranteed state. Usually used for `review`, `link`, or `archive` formats.          | \n| `approve_from_arbitration_seo` | Approve a placement that was sent to arbitration, resolving the dispute in your favour.                     | `STATUS_PLACEMENT_ARBITRATION`                                                                  | `STATUS_APPROVED`                | Use this when the moderator or system decides in your favour.                                                               |\n| `cancel_from_on_placement_seo` | Cancel a placement that is currently in the “on placement” state (before the webmaster has published).      | `STATUS_ON_PLACEMENT`                                                                           | `STATUS_REJECTED`                | Available only 1‑72 hours after the placement entered `STATUS_ON_PLACEMENT`. After 72 hours the action becomes unavailable. |\n| `cancel_from_improve_seo`      | Cancel a placement that is in the “improvement needed” state (webmaster is reworking the content).          | `STATUS_PLACEMENT_IMPROVE`                                                                      | `STATUS_REJECTED`                | Allowed only if the placement has been in `STATUS_PLACEMENT_IMPROVE` for more than 15 days.                                 |\n| `cancel_seo`                   | Generic cancellation for placements in various states where the process has stalled or you are unsatisfied. | `STATUS_MODER`, `STATUS_CLARIFICATION`, `STATUS_ON_PLACEMENT_GUARANTEED`, `STATUS_NEED_APPROVE` | `STATUS_REJECTED`                | Requires the placement to be guaranteed and a timeout condition.                                                            |\n| `terminate_seo`                | Request permanent removal (teardown) of an already approved backlink.                                       | `STATUS_APPROVED`                                                                               | `STATUS_TO_TERMINATE`            | The link will be removed after the webmaster acts on the request.                                                           |\n\n## Workflow Notes\n\n- **Guaranteed placements** (`STATUS_ON_PLACEMENT_GUARANTEED`) are those where the webmaster has confirmed they will complete the work. Most actions on guaranteed placements have stricter timeouts.\n- **Arbitration** (`STATUS_PLACEMENT_ARBITRATION`) is a special state for disputes. You should first try to resolve with the webmaster; if unresolved, use `approve_from_arbitration_seo` or let the moderator decide.\n\n## Example: Cancelling a placement that is stuck in “on placement”\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placements_id=12345 action=cancel_from_on_placement_seo\n```\n\n## Common Statuses You Will Encounter\n\n| Status                          | Meaning                                    |\n|---------------------------------|--------------------------------------------|\n| STATUS_PHANTOM\t                 | Initial ghost state before any processing. |\n| STATUS_CREATING\t                | Placement is being created in subsystems.  |\n| STATUS_NEED_APPROVE\t            | Awaiting your approval (auto‑buyer mode).  |\n| STATUS_ON_PLACEMENT\t            | Webmaster is expected to place the link.   |\n| STATUS_ON_PLACEMENT_GUARANTEED\t | Webmaster guaranteed the placement.        |\n| STATUS_ON_CONTENT_APPROVAL\t     | Content is ready for your review.          |\n| STATUS_PLACEMENT_CHECK\t         | Live page is being checked by the system.  |\n| STATUS_PLACEMENT_IMPROVE\t       | Webmaster must improve the placement.      |\n| STATUS_PLACEMENT_ARBITRATION\t   | Dispute resolution in progress.            |\n| STATUS_APPROVED\t                | Placement successfully completed.          |\n| STATUS_TO_TERMINATE\t            | Link removal requested.                    |\n| STATUS_TERMINATED\t              | Link removed.                              |\n| STATUS_CHANGE_REQUESTED\t        | Link change requested.                     |\n| STATUS_BUY_FAIL\t                | Purchase attempt failed.                   |\n| STATUS_WAIT_WITHDRAWAL\t         | Draft waiting for payment.                 |\n| STATUS_DELETED\t                 | Permanently deleted.                       |\n\nFile v1.0.3:skill-card.md\n\n## Description:\n\nSkill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[stanislav-reshetnev](https://clawhub.ai/user/stanislav-reshetnev)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nSEO specialists and webmasters use this skill with OpenClaw to search Serpzilla donor sites, prepare content, purchase guest posts or link insertions, and manage placement lifecycle actions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The workflow handles real Serpzilla API credentials.\n\nMitigation: Use a dedicated, revocable Serpzilla token with the least authority and budget possible, and avoid storing tokens in shell history or plaintext configuration.\n\nRisk: Purchase and placement actions can spend funds, release funds, cancel orders, or remove approved backlinks.\n\nMitigation: Independently confirm every purchase or placement action in the Serpzilla UI before execution.\n\nRisk: The setup relies on third-party tooling and a Docker image that are not pinned by digest in the artifact.\n\nMitigation: Pin and verify mcporter and the Serpzilla MCP Docker image digest before deployment.\n\n## Reference(s):\n\n- [Serpzilla API Documentation](https://serpzilla.com/api/)\n- [SEO Actions for Managing Placements](references/placement_actions.md)\n- [Serpzilla MCP Server Docker Image](https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags)\n- [ClawHub Skill Release](https://clawhub.ai/stanislav-reshetnev/skills/serpzilla-seo-guest-posting)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration]\n\n**Output Format:** [Markdown guidance with inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires mcporter, Docker, SERPZILLA_LOGIN, and SERPZILLA_API_TOKEN.]\n\n## Skill Version(s):\n\n1.0.3 (source: server release metadata; artifact frontmatter reports 1.0.0)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.2: 5 files, 8938 bytes\n\nFiles: README.md (1678b), references/placement_actions.md (5921b), skill-card.md (2599b), SKILL.md (12147b), _meta.json (146b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: serpzilla-seo-guest-posting\ndescription: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform\nversion: 1.0.0\nauthor: Stanislavus\nuser-invocable: true\ntriggers:\n  - buy guest post for SEO\n  - find donor site for guest posting\n  - serpzilla search donors\n  - configure serpzilla mcp\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🦖\",\n        \"requires\":\n          {\n            \"bins\": [\"mcporter\"],\n            \"env\": [\"SERPZILLA_LOGIN\", \"SERPZILLA_API_TOKEN\"],\n          },\n        \"primaryEnv\": \"SERPZILLA_API_TOKEN\",\n      },\n  }\n---\n\n# Serpzilla SEO Guest Posting\n\n## Description\n\nThis skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.\nIt allows you to automate the search and purchase of guest posts (article placements on donor sites \nthat pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done \nvia the Serpzilla MCP server, managed by the `mcporter` tool.\n\n## Prerequisites\n\nThe following components must be installed and configured on the server where OpenClaw runs:\n\n1. **Docker** – to run the Serpzilla MCP server in an isolated container.\n2. **Node.js and npm** – to install and run `mcporter`.\n3. **OpenClaw** – the agent runtime environment.\n\nBefore using any Serpzilla commands, verify the MCP server is already registered with `npx mcporter list serpzilla`.\n\n## Preliminary Setup\n\nTo fully use this skill, you need to register and configure the connection to the Serpzilla API.\n\n### 1. Registration and API token\n\n1. Register as an advertiser on [Serpzilla.com](https://serpzilla.com/).\n2. Go to the security section at [https://passport.serpzilla.com/security/token/](https://passport.serpzilla.com/security/token/).\n3. Copy your **API token** and remember your **login** (email) used for registration.\n\n### 2. Install mcporter and add the Serpzilla MCP server\n\n`mcporter` is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.\n\n**Install mcporter globally:**\n```bash\nnpm install -g mcporter\n```\n\nAdd the Serpzilla MCP server:\n\nIt is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN\n(the user's chosen login for registering with serpzilla.com, usually an email address)\nand SERPZILLA_API_TOKEN (the API token received by the user).\nRun the following command, replacing XXX and YYY with user's values:\n\n```bash\nnpx mcporter config add serpzilla --stdio \"docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:v1.0.7\"\n```\n\n### 3. Verify the configuration\n\nCheck that the MCP server was added successfully:\n\n```bash\nnpx mcporter list serpzilla\n```\n\n## Using the skill\n\nAfter completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing\na guest post is described below.\n\nThe main entities in the Serpzilla domain for purchasing Guest Posts are:\n\n- *Project* - a container for the entities listed below. To begin posting, you must create a project. A project is \n  created for a specific domain, but there are no restrictions on promoting other domains within the project.\n- *URL* - the address of the page being promoted for SEO. Guest Post placements will be purchased to promote this \n  page. The URL is linked to the project.\n- *Article* - the article to be posted on donor sites. It can be uploaded to the Serpzilla system for use when \n  purchasing placements. After uploading to Serpzilla, articles are reviewed by moderators. For this reason, Articles have statuses. Articles are linked to the project.\n- *Text* - the anchor for the link being posted on the donor page/site. If the user uploads an Article, the Text and \n  URL for the promotion are determined automatically. Text is linked to the project.\n- *Content* - a general entity for Article and Content. It also has its own system for transitioning between statuses.\n- *Placement* - the Guest Post placement being purchased. Placement has a workflow that is reflected in the status \n  transition. Placement is linked to Text and URL.\n\nDescription of placement types:\n\n| Format    | Type                              | Content Provided By          | Required Fields When Buying | Notes                                                                                                 |\n|-----------|-----------------------------------|------------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------|\n| `news`    | Advertiser’s Article (Guest Post) | Advertiser (client)          | `article_id`, `url_id`      | `text_id` not required. The article is fully provided by the client.                                  |\n| `review`  | Publisher’s Article (Guest Post)  | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes a review article. This placement is **more expensive**.                          |\n| `link`    | In The News (Link Insertion)      | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes an article — not a review, but a link naturally embedded into a site news piece. |\n| `archive` | In The Archive (Link Insertion)   | N/A (article already exists) | `url_id`, `text_id`         | Placement occurs in an already existing article on the site.                                          |\n\n\nTo get current user information including account balance:\n\n```bash\nnpx mcporter call serpzilla.get_user_info\n```\n\nTo top up user's balance, refer user to visit: https://passport.serpzilla.com/deposit/\n\n### Step 1: Create a project for your promoted website\n\nCreate a project inside Serpzilla for your domain. Replace **YOUR_SITE.COM** with your actual website URL\n(without `https://`):\n\n```bash\nnpx mcporter call serpzilla.create_project domain=YOUR_SITE.COM\n```\n\n*Important:* Save the returned **PROJECT_ID** (ID field) – you will need it later.\n\nWhen a project is created, Serpzilla automatically generates:\n\n- One **URL** entity with the `domain` as the URL (e.g., https://YOUR_SITE.COM)\n- One **Text** entity with the domain name as the default anchor\n\nYou can later add more URLs and Texts for specific landing pages and anchors.\n\nTo view all your existing projects:\n\n```bash\nnpx mcporter call serpzilla.list_projects\n```\n\n### Step 2. Content preparation\n\nYou must upload an article **before** purchasing a placement. The article will be reviewed by Serpzilla moderators.\nOnly `approved` articles can be used for placements.\n\n**Add an article:**\n\n```bash\nnpx mcporter call serpzilla.add_article project_id=PROJECT_ID url='FULL_URL' title='ARTICLE_TITLE' \\\nmeta_title=\"ARTICLE_META_TITLE\" body='ARTICLE_BODY'\n```\n\nParameters:\n\n- `url` – the full promotion URL (including `https://`), e.g., https://yoursite.com/product\n- `title` – internal title of the article (visible only in Serpzilla UI)\n- `meta_title` – meta title used by the publisher when posting\n- `body` – HTML content of the article, with your backlink(s) already inserted\n\n**Article moderation:**\n\n- After upload, the article status will be `pending`.\n- Moderation usually takes 1–2 business days.\n- If approved, status changes to `approved`; you can then use it in purchases.\n- If rejected, check the reason and re-upload a corrected version.\n\nCheck article status:\n\n```bash\nnpx mcporter call serpzilla.get_project_content_list project_id=PROJECT_ID\n```\n\n**For `review`, `link`, `archive` formats**\n\nNo article upload is needed. Serpzilla will use the `text_id` (anchor) and `url_id` (promoted page).\nThe webmaster writes the content according to the format.\n\n### Step 3: Search for donor sites\n\nWith your **PROJECT_ID**, you can search for available donor sites that accept your desired placement type.\n\n**Basic search command:**\n\n```bash\nnpx mcporter call serpzilla.search_sites project_id=PROJECT_ID link_type=link\n```\n\nValid link_type values: `news`, `review`, `link`, `archive`.\n\n**See all available filters (language, price range, DR, etc.):**\n\n```bash\nnpx mcporter list serpzilla --schema --json\n```\n\n**Get detailed information about a specific donor site:**\n\n```bash\nnpx mcporter call serpzilla.get_site_info site_id=SITE_ID\n```\n\nThis returns metrics (DR, traffic, language), status, price, placement examples, and more.\n\n### Step 4. Buying Guest Posts\n\n**IMPORTANT — User confirmation required before any purchase.**\n\nBefore executing a purchase, the agent MUST:\n\n1. Call `get_user_info` to retrieve the current account balance.\n2. Call `get_site_info site_id=SITE_ID` to retrieve the price for the selected donor site.\n3. Present the following information to the user:\n   - Site URL and price\n   - Current account balance\n   - Remaining balance after purchase (balance - price)\n4. Ask the user for **explicit confirmation** to proceed with the purchase.\n5. Only execute `purchase_placement` after receiving the user's confirmation.\n\nIf the user does not confirm, do NOT proceed with the purchase.\n\nOnce you have:\n- `PROJECT_ID`\n- `SITE_ID` (from search results)\n- For `news`: `article_id` (approved) and `url_id`\n- For `review`, `link`, `archive`: `url_id` and `text_id`\n\n**Important:** The `search_history_id` parameter must always be set to an empty string `\"\"` when buying.\n\n#### Examples for each format:\n\n**4.1 Purchase a `news` placement (Advertiser’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=news \\\n  site_id=SITE_ID article_id=ARTICLE_ID url_id=URL_ID search_history_id=\"\"\n```\n\nOptional: `is_content_need_approval=true` – if set, the placement will wait for your approval before the publisher starts.\nUseful if you want to review the final context.\n\n**4.2 Purchase a `review` placement (Publisher’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=review \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.3 Purchase a `link` placement (In The News – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=link \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.4 Purchase an `archive` placement (In The Archive – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=archive \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\nTo view purchased placements use:\n\n```bash\nnpx mcporter call serpzilla.get_project_placements project_id=PROJECT_ID\n```\n\n### Step 5. Managing Purchased Placements\n\n**IMPORTANT — User confirmation required before any placement action.**\n\nMany placement actions have financial implications:\n- `approve_seo` / `approve_content_seo` — releases funds to the publisher\n- `cancel_seo` / `cancel_from_*` — may trigger refunds or forfeiture\n- `terminate_seo` — permanently removes an approved backlink\n- `approve_from_arbitration_seo` — resolves a dispute in your favour\n\nBefore executing any `perform_placement_action`, the agent MUST:\n\n1. Inform the user about the action being taken and its financial impact.\n2. Ask the user for **explicit confirmation** to proceed.\n3. Only execute the action after receiving the user's confirmation.\n\nIf the user does not confirm, do NOT proceed with the action.\n\nAfter you purchase a placement, its lifecycle is managed through a set of statuses and transitions. \nYou can perform specific actions to influence the placement's progress, request changes, cancel orders, \nor handle edge cases like billing or failed purchases.\n\nAll actions are executed using the MCP tool:\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placement_ids=PLACEMENT_ID action=ACTION_NAME\n```\n\nThe [table by link](references/placement_actions.md) lists every SEO‑available action. \nFor each action we describe its purpose, the source status(es), the target status, and any relevant notes.\n\n\n## Additional resources\n\n* [Serpzilla API Documentation](https://serpzilla.com/api/)\n\nFile v1.0.2:README.md\n\n# Serpzilla SEO Guest Posting Skill for OpenClaw\n\nThis skill enables [OpenClaw](https://github.com/openclaw) agents to automate the purchase of guest posts and\nlink insertions via the [Serpzilla](https://serpzilla.com) platform. It provides a structured workflow for\nSEO specialists to search donor sites, manage content, buy placements, and control the entire backlink\nacquisition process.\n\n## Features\n\n- Create projects for your promoted websites  \n- Search and filter donor sites by price, DR, language, etc.  \n- Upload articles for moderation (`news` format)  \n- Buy four types of placements:  \n  - `news` – advertiser’s article (guest post)  \n  - `review` – publisher’s written review article  \n  - `link` – natural link insertion into a news article  \n  - `archive` – link placed into an existing article  \n- Manage purchased placements (approve, cancel, request teardown, etc.)\n\n## Prerequisites\n\n- [OpenClaw](https://github.com/openclaw) agent environment  \n- [mcporter](https://github.com/modelcontextprotocol/mcporter) – MCP server manager  \n- **Docker** – runs the Serpzilla MCP server  \n- **Node.js / npm** – to install `mcporter`\n\n## Repository contents\n- `SKILL.md` – the complete skill definition, including all steps, entity descriptions, and management actions.\n- `references/placement_actions.md` – detailed reference of SEO‑available placement actions\n  (approve_seo, cancel_seo, terminate_seo, etc.).\n\n## See also\n\n* The Serpzilla MCP server Docker image is available at https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags\n* The MCP server source code: https://github.com/stanislav-reshetnev/serpzilla-mcp-server\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn79nhg733pyyfyeymxf0yt6g5862s82\",\n  \"slug\": \"serpzilla-seo-guest-posting\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1778772122962\n}\n\nFile v1.0.2:references/placement_actions.md\n\n# SEO Actions for Managing Placements (Serpzilla)\n\nThe table below lists all available actions for the `serpzilla.perform_placement_action` tool.\n\n| Action name                    | Description\t                                                                                                | From status(es)\t                                                                                | To status\t                       | Notes                                                                                                                       |\n|--------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `approve_seo`                  | Approve a placement after you have reviewed the live page. Marks the placement as successfully completed.   | `STATUS_PLACEMENT_CHECK`                                                                        | `STATUS_APPROVED`                | \tOnly possible when the placement is in the final check stage.                                                              | \n| `approve_content_seo`          | Accept the content provided by the webmaster (for formats where content approval is required).              | `STATUS_ON_CONTENT_APPROVAL`, `STATUS_PLACEMENT_ARBITRATION`                                    | `STATUS_ON_PLACEMENT_GUARANTEED` | After approval the placement moves to a guaranteed state. Usually used for `review`, `link`, or `archive` formats.          | \n| `approve_from_arbitration_seo` | Approve a placement that was sent to arbitration, resolving the dispute in your favour.                     | `STATUS_PLACEMENT_ARBITRATION`                                                                  | `STATUS_APPROVED`                | Use this when the moderator or system decides in your favour.                                                               |\n| `cancel_from_on_placement_seo` | Cancel a placement that is currently in the “on placement” state (before the webmaster has published).      | `STATUS_ON_PLACEMENT`                                                                           | `STATUS_REJECTED`                | Available only 1‑72 hours after the placement entered `STATUS_ON_PLACEMENT`. After 72 hours the action becomes unavailable. |\n| `cancel_from_improve_seo`      | Cancel a placement that is in the “improvement needed” state (webmaster is reworking the content).          | `STATUS_PLACEMENT_IMPROVE`                                                                      | `STATUS_REJECTED`                | Allowed only if the placement has been in `STATUS_PLACEMENT_IMPROVE` for more than 15 days.                                 |\n| `cancel_seo`                   | Generic cancellation for placements in various states where the process has stalled or you are unsatisfied. | `STATUS_MODER`, `STATUS_CLARIFICATION`, `STATUS_ON_PLACEMENT_GUARANTEED`, `STATUS_NEED_APPROVE` | `STATUS_REJECTED`                | Requires the placement to be guaranteed and a timeout condition.                                                            |\n| `terminate_seo`                | Request permanent removal (teardown) of an already approved backlink.                                       | `STATUS_APPROVED`                                                                               | `STATUS_TO_TERMINATE`            | The link will be removed after the webmaster acts on the request.                                                           |\n\n## Workflow Notes\n\n- **Guaranteed placements** (`STATUS_ON_PLACEMENT_GUARANTEED`) are those where the webmaster has confirmed they will complete the work. Most actions on guaranteed placements have stricter timeouts.\n- **Arbitration** (`STATUS_PLACEMENT_ARBITRATION`) is a special state for disputes. You should first try to resolve with the webmaster; if unresolved, use `approve_from_arbitration_seo` or let the moderator decide.\n\n## Example: Cancelling a placement that is stuck in “on placement”\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placements_id=12345 action=cancel_from_on_placement_seo\n```\n\n## Common Statuses You Will Encounter\n\n| Status                          | Meaning                                    |\n|---------------------------------|--------------------------------------------|\n| STATUS_PHANTOM\t                 | Initial ghost state before any processing. |\n| STATUS_CREATING\t                | Placement is being created in subsystems.  |\n| STATUS_NEED_APPROVE\t            | Awaiting your approval (auto‑buyer mode).  |\n| STATUS_ON_PLACEMENT\t            | Webmaster is expected to place the link.   |\n| STATUS_ON_PLACEMENT_GUARANTEED\t | Webmaster guaranteed the placement.        |\n| STATUS_ON_CONTENT_APPROVAL\t     | Content is ready for your review.          |\n| STATUS_PLACEMENT_CHECK\t         | Live page is being checked by the system.  |\n| STATUS_PLACEMENT_IMPROVE\t       | Webmaster must improve the placement.      |\n| STATUS_PLACEMENT_ARBITRATION\t   | Dispute resolution in progress.            |\n| STATUS_APPROVED\t                | Placement successfully completed.          |\n| STATUS_TO_TERMINATE\t            | Link removal requested.                    |\n| STATUS_TERMINATED\t              | Link removed.                              |\n| STATUS_CHANGE_REQUESTED\t        | Link change requested.                     |\n| STATUS_BUY_FAIL\t                | Purchase attempt failed.                   |\n| STATUS_WAIT_WITHDRAWAL\t         | Draft waiting for payment.                 |\n| STATUS_DELETED\t                 | Permanently deleted.                       |\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nSkill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[stanislav-reshetnev](https://clawhub.ai/user/stanislav-reshetnev) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nSEO specialists and webmasters use this skill to configure Serpzilla access, search donor sites, purchase guest-post or link-insertion placements, and manage placement lifecycle actions through OpenClaw. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can initiate paid Serpzilla placement purchases. <br>\nMitigation: Review the donor site, price, current account balance, and remaining balance before giving explicit confirmation for any purchase. <br>\nRisk: Placement actions can approve payments, cancel orders, resolve arbitration, or request backlink teardown. <br>\nMitigation: Verify the placement ID, current status, requested action, and financial impact before confirming any placement lifecycle action. <br>\nRisk: The Serpzilla API token is a sensitive credential. <br>\nMitigation: Provide the token only through the configured environment variable and avoid exposing it in prompts, logs, screenshots, or shared command output. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/stanislav-reshetnev/serpzilla-seo-guest-posting) <br>\n- [Placement Actions Reference](references/placement_actions.md) <br>\n- [Serpzilla API Documentation](https://serpzilla.com/api/) <br>\n- [Serpzilla Platform](https://serpzilla.com) <br>\n- [Serpzilla MCP Server Docker Image](https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags) <br>\n- [mcporter MCP Server Manager](https://github.com/modelcontextprotocol/mcporter) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and configuration values] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires Serpzilla login and API token environment variables, plus mcporter, Docker, Node.js, and npm.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: ClawHub release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 4 files, 7161 bytes\n\nFiles: README.md (1678b), references/placement_actions.md (5921b), SKILL.md (10621b), _meta.json (146b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: serpzilla-seo-guest-posting\ndescription: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform\nversion: 1.0.0\nauthor: Stanislavus\nuser-invocable: true\ntriggers:\n  - buy guest post for SEO\n  - find donor site for guest posting\n  - serpzilla search donors\n  - configure serpzilla mcp\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🦖\",\n        \"requires\": { \"bins\": [\"mcporter\"] },\n      },\n  }\n---\n\n# Serpzilla SEO Guest Posting\n\n## Description\n\nThis skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.\nIt allows you to automate the search and purchase of guest posts (article placements on donor sites \nthat pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done \nvia the Serpzilla MCP server, managed by the `mcporter` tool.\n\n## Prerequisites\n\nThe following components must be installed and configured on the server where OpenClaw runs:\n\n1. **Docker** – to run the Serpzilla MCP server in an isolated container.\n2. **Node.js and npm** – to install and run `mcporter`.\n3. **OpenClaw** – the agent runtime environment.\n\nBefore using any Serpzilla commands, verify the MCP server is already registered with `npx mcporter list serpzilla`.\n\n## Preliminary Setup\n\nTo fully use this skill, you need to register and configure the connection to the Serpzilla API.\n\n### 1. Registration and API token\n\n1. Register as an advertiser on [Serpzilla.com](https://serpzilla.com/).\n2. Go to the security section at [https://passport.serpzilla.com/security/token/](https://passport.serpzilla.com/security/token/).\n3. Copy your **API token** and remember your **login** (email) used for registration.\n\n### 2. Install mcporter and add the Serpzilla MCP server\n\n`mcporter` is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.\n\n**Install mcporter globally:**\n```bash\nnpm install -g mcporter\n```\n\nAdd the Serpzilla MCP server:\n\nIt is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN\n(the user's chosen login for registering with serpzilla.com, usually an email address)\nand SERPZILLA_API_TOKEN (the API token received by the user).\nRun the following command, replacing XXX and YYY with user's values:\n\n```bash\nnpx mcporter config add serpzilla --stdio \"docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:latest\"\n```\n\n### 3. Verify the configuration\n\nCheck that the MCP server was added successfully:\n\n```bash\nnpx mcporter list serpzilla\n```\n\n## Using the skill\n\nAfter completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing\na guest post is described below.\n\nThe main entities in the Serpzilla domain for purchasing Guest Posts are:\n\n- *Project* - a container for the entities listed below. To begin posting, you must create a project. A project is \n  created for a specific domain, but there are no restrictions on promoting other domains within the project.\n- *URL* - the address of the page being promoted for SEO. Guest Post placements will be purchased to promote this \n  page. The URL is linked to the project.\n- *Article* - the article to be posted on donor sites. It can be uploaded to the Serpzilla system for use when \n  purchasing placements. After uploading to Serpzilla, articles are reviewed by moderators. For this reason, Articles have statuses. Articles are linked to the project.\n- *Text* - the anchor for the link being posted on the donor page/site. If the user uploads an Article, the Text and \n  URL for the promotion are determined automatically. Text is linked to the project.\n- *Content* - a general entity for Article and Content. It also has its own system for transitioning between statuses.\n- *Placement* - the Guest Post placement being purchased. Placement has a workflow that is reflected in the status \n  transition. Placement is linked to Text and URL.\n\nDescription of placement types:\n\n| Format    | Type                              | Content Provided By          | Required Fields When Buying | Notes                                                                                                 |\n|-----------|-----------------------------------|------------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------|\n| `news`    | Advertiser’s Article (Guest Post) | Advertiser (client)          | `article_id`, `url_id`      | `text_id` not required. The article is fully provided by the client.                                  |\n| `review`  | Publisher’s Article (Guest Post)  | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes a review article. This placement is **more expensive**.                          |\n| `link`    | In The News (Link Insertion)      | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes an article — not a review, but a link naturally embedded into a site news piece. |\n| `archive` | In The Archive (Link Insertion)   | N/A (article already exists) | `url_id`, `text_id`         | Placement occurs in an already existing article on the site.                                          |\n\n\nTo get current user information including account balance:\n\n```bash\nnpx mcporter call serpzilla.get_user_info\n```\n\nTo top up user's balance, refer user to visit: https://passport.serpzilla.com/deposit/\n\n### Step 1: Create a project for your promoted website\n\nCreate a project inside Serpzilla for your domain. Replace **YOUR_SITE.COM** with your actual website URL\n(without `https://`):\n\n```bash\nnpx mcporter call serpzilla.create_project domain=YOUR_SITE.COM\n```\n\n*Important:* Save the returned **PROJECT_ID** (ID field) – you will need it later.\n\nWhen a project is created, Serpzilla automatically generates:\n\n- One **URL** entity with the `domain` as the URL (e.g., https://YOUR_SITE.COM)\n- One **Text** entity with the domain name as the default anchor\n\nYou can later add more URLs and Texts for specific landing pages and anchors.\n\nTo view all your existing projects:\n\n```bash\nnpx mcporter call serpzilla.list_projects\n```\n\n### Step 2. Content preparation\n\nYou must upload an article **before** purchasing a placement. The article will be reviewed by Serpzilla moderators.\nOnly `approved` articles can be used for placements.\n\n**Add an article:**\n\n```bash\nnpx mcporter call serpzilla.add_article project_id=PROJECT_ID url='FULL_URL' title='ARTICLE_TITLE' \\\nmeta_title=\"ARTICLE_META_TITLE\" body='ARTICLE_BODY'\n```\n\nParameters:\n\n- `url` – the full promotion URL (including `https://`), e.g., https://yoursite.com/product\n- `title` – internal title of the article (visible only in Serpzilla UI)\n- `meta_title` – meta title used by the publisher when posting\n- `body` – HTML content of the article, with your backlink(s) already inserted\n\n**Article moderation:**\n\n- After upload, the article status will be `pending`.\n- Moderation usually takes 1–2 business days.\n- If approved, status changes to `approved`; you can then use it in purchases.\n- If rejected, check the reason and re-upload a corrected version.\n\nCheck article status:\n\n```bash\nnpx mcporter call serpzilla.get_project_content_list project_id=PROJECT_ID\n```\n\n**For `review`, `link`, `archive` formats**\n\nNo article upload is needed. Serpzilla will use the `text_id` (anchor) and `url_id` (promoted page).\nThe webmaster writes the content according to the format.\n\n### Step 3: Search for donor sites\n\nWith your **PROJECT_ID**, you can search for available donor sites that accept your desired placement type.\n\n**Basic search command:**\n\n```bash\nnpx mcporter call serpzilla.search_sites project_id=PROJECT_ID link_type=link\n```\n\nValid link_type values: `news`, `review`, `link`, `archive`.\n\n**See all available filters (language, price range, DR, etc.):**\n\n```bash\nnpx mcporter list serpzilla --schema --json\n```\n\n**Get detailed information about a specific donor site:**\n\n```bash\nnpx mcporter call serpzilla.get_site_info site_id=SITE_ID\n```\n\nThis returns metrics (DR, traffic, language), status, price, placement examples, and more.\n\n### Step 4. Buying Guest Posts\n\nOnce you have:\n- `PROJECT_ID`\n- `SITE_ID` (from search results)\n- For `news`: `article_id` (approved) and `url_id`\n- For `review`, `link`, `archive`: `url_id` and `text_id`\n\n**Important:** The `search_history_id` parameter must always be set to an empty string `\"\"` when buying.\n\n#### Examples for each format:\n\n**4.1 Purchase a `news` placement (Advertiser’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=news \\\n  site_id=SITE_ID article_id=ARTICLE_ID url_id=URL_ID search_history_id=\"\"\n```\n\nOptional: `is_content_need_approval=true` – if set, the placement will wait for your approval before the publisher starts.\nUseful if you want to review the final context.\n\n**4.2 Purchase a `review` placement (Publisher’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=review \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.3 Purchase a `link` placement (In The News – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=link \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.4 Purchase an `archive` placement (In The Archive – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=archive \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\nTo view purchased placements use:\n\n```bash\nnpx mcporter call serpzilla.get_project_placements project_id=PROJECT_ID\n```\n\n### Step 5. Managing Purchased Placements\n\nAfter you purchase a placement, its lifecycle is managed through a set of statuses and transitions. \nYou can perform specific actions to influence the placement’s progress, request changes, cancel orders, \nor handle edge cases like billing or failed purchases.\n\nAll actions are executed using the MCP tool:\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placement_ids=PLACEMENT_ID action=ACTION_NAME\n```\n\nThe [table by link](references/placement_actions.md) lists every SEO‑available action. \nFor each action we describe its purpose, the source status(es), the target status, and any relevant notes.\n\n\n## Additional resources\n\n* [Serpzilla API Documentation](https://serpzilla.com/api/)\n\nFile v1.0.1:README.md\n\n# Serpzilla SEO Guest Posting Skill for OpenClaw\n\nThis skill enables [OpenClaw](https://github.com/openclaw) agents to automate the purchase of guest posts and\nlink insertions via the [Serpzilla](https://serpzilla.com) platform. It provides a structured workflow for\nSEO specialists to search donor sites, manage content, buy placements, and control the entire backlink\nacquisition process.\n\n## Features\n\n- Create projects for your promoted websites  \n- Search and filter donor sites by price, DR, language, etc.  \n- Upload articles for moderation (`news` format)  \n- Buy four types of placements:  \n  - `news` – advertiser’s article (guest post)  \n  - `review` – publisher’s written review article  \n  - `link` – natural link insertion into a news article  \n  - `archive` – link placed into an existing article  \n- Manage purchased placements (approve, cancel, request teardown, etc.)\n\n## Prerequisites\n\n- [OpenClaw](https://github.com/openclaw) agent environment  \n- [mcporter](https://github.com/modelcontextprotocol/mcporter) – MCP server manager  \n- **Docker** – runs the Serpzilla MCP server  \n- **Node.js / npm** – to install `mcporter`\n\n## Repository contents\n- `SKILL.md` – the complete skill definition, including all steps, entity descriptions, and management actions.\n- `references/placement_actions.md` – detailed reference of SEO‑available placement actions\n  (approve_seo, cancel_seo, terminate_seo, etc.).\n\n## See also\n\n* The Serpzilla MCP server Docker image is available at https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags\n* The MCP server source code: https://github.com/stanislav-reshetnev/serpzilla-mcp-server\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn79nhg733pyyfyeymxf0yt6g5862s82\",\n  \"slug\": \"serpzilla-seo-guest-posting\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1778770215828\n}\n\nFile v1.0.1:references/placement_actions.md\n\n# SEO Actions for Managing Placements (Serpzilla)\n\nThe table below lists all available actions for the `serpzilla.perform_placement_action` tool.\n\n| Action name                    | Description\t                                                                                                | From status(es)\t                                                                                | To status\t                       | Notes                                                                                                                       |\n|--------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `approve_seo`                  | Approve a placement after you have reviewed the live page. Marks the placement as successfully completed.   | `STATUS_PLACEMENT_CHECK`                                                                        | `STATUS_APPROVED`                | \tOnly possible when the placement is in the final check stage.                                                              | \n| `approve_content_seo`          | Accept the content provided by the webmaster (for formats where content approval is required).              | `STATUS_ON_CONTENT_APPROVAL`, `STATUS_PLACEMENT_ARBITRATION`                                    | `STATUS_ON_PLACEMENT_GUARANTEED` | After approval the placement moves to a guaranteed state. Usually used for `review`, `link`, or `archive` formats.          | \n| `approve_from_arbitration_seo` | Approve a placement that was sent to arbitration, resolving the dispute in your favour.                     | `STATUS_PLACEMENT_ARBITRATION`                                                                  | `STATUS_APPROVED`                | Use this when the moderator or system decides in your favour.                                                               |\n| `cancel_from_on_placement_seo` | Cancel a placement that is currently in the “on placement” state (before the webmaster has published).      | `STATUS_ON_PLACEMENT`                                                                           | `STATUS_REJECTED`                | Available only 1‑72 hours after the placement entered `STATUS_ON_PLACEMENT`. After 72 hours the action becomes unavailable. |\n| `cancel_from_improve_seo`      | Cancel a placement that is in the “improvement needed” state (webmaster is reworking the content).          | `STATUS_PLACEMENT_IMPROVE`                                                                      | `STATUS_REJECTED`                | Allowed only if the placement has been in `STATUS_PLACEMENT_IMPROVE` for more than 15 days.                                 |\n| `cancel_seo`                   | Generic cancellation for placements in various states where the process has stalled or you are unsatisfied. | `STATUS_MODER`, `STATUS_CLARIFICATION`, `STATUS_ON_PLACEMENT_GUARANTEED`, `STATUS_NEED_APPROVE` | `STATUS_REJECTED`                | Requires the placement to be guaranteed and a timeout condition.                                                            |\n| `terminate_seo`                | Request permanent removal (teardown) of an already approved backlink.                                       | `STATUS_APPROVED`                                                                               | `STATUS_TO_TERMINATE`            | The link will be removed after the webmaster acts on the request.                                                           |\n\n## Workflow Notes\n\n- **Guaranteed placements** (`STATUS_ON_PLACEMENT_GUARANTEED`) are those where the webmaster has confirmed they will complete the work. Most actions on guaranteed placements have stricter timeouts.\n- **Arbitration** (`STATUS_PLACEMENT_ARBITRATION`) is a special state for disputes. You should first try to resolve with the webmaster; if unresolved, use `approve_from_arbitration_seo` or let the moderator decide.\n\n## Example: Cancelling a placement that is stuck in “on placement”\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placements_id=12345 action=cancel_from_on_placement_seo\n```\n\n## Common Statuses You Will Encounter\n\n| Status                          | Meaning                                    |\n|---------------------------------|--------------------------------------------|\n| STATUS_PHANTOM\t                 | Initial ghost state before any processing. |\n| STATUS_CREATING\t                | Placement is being created in subsystems.  |\n| STATUS_NEED_APPROVE\t            | Awaiting your approval (auto‑buyer mode).  |\n| STATUS_ON_PLACEMENT\t            | Webmaster is expected to place the link.   |\n| STATUS_ON_PLACEMENT_GUARANTEED\t | Webmaster guaranteed the placement.        |\n| STATUS_ON_CONTENT_APPROVAL\t     | Content is ready for your review.          |\n| STATUS_PLACEMENT_CHECK\t         | Live page is being checked by the system.  |\n| STATUS_PLACEMENT_IMPROVE\t       | Webmaster must improve the placement.      |\n| STATUS_PLACEMENT_ARBITRATION\t   | Dispute resolution in progress.            |\n| STATUS_APPROVED\t                | Placement successfully completed.          |\n| STATUS_TO_TERMINATE\t            | Link removal requested.                    |\n| STATUS_TERMINATED\t              | Link removed.                              |\n| STATUS_CHANGE_REQUESTED\t        | Link change requested.                     |\n| STATUS_BUY_FAIL\t                | Purchase attempt failed.                   |\n| STATUS_WAIT_WITHDRAWAL\t         | Draft waiting for payment.                 |\n| STATUS_DELETED\t                 | Permanently deleted.                       |\n\nArchive v1.0.0: 4 files, 7166 bytes\n\nFiles: README.md (1678b), references/placement_actions.md (5921b), SKILL.md (10626b), _meta.json (146b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: serpzilla-seo-guest-posting\ndescription: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform\nversion: 1.0.0\nauthor: Stanislavus\nuser-invocable: true\ntriggers:\n  - buy guest post for SEO\n  - find donor site for guest posting\n  - serpzilla search donors\n  - configure serpzilla mcp\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🦖\",\n        \"requires\": { \"bins\": [\"mcporter\"] },\n      },\n  }\n---\n\n# Serpzilla SEO Guest Posting\n\n## Description\n\nThis skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.\nIt allows you to automate the search and purchase of guest posts (article placements on donor sites \nthat pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done \nvia the Serpzilla MCP server, managed by the `mcporter` tool.\n\n## Prerequisites\n\nThe following components must be installed and configured on the server where OpenClaw runs:\n\n1. **Docker** – to run the Serpzilla MCP server in an isolated container.\n2. **Node.js and npm** – to install and run `mcporter`.\n3. **OpenClaw** – the agent runtime environment.\n\nBefore using any Serpzilla commands, verify the MCP server is already registered with `npx mcporter list serpzilla`.\n\n## Preliminary Setup\n\nTo fully use this skill, you need to register and configure the connection to the Serpzilla API.\n\n### 1. Registration and API token\n\n1. Register as an advertiser on [Serpzilla.com](https://serpzilla.com/).\n2. Go to the security section at [https://passport.serpzilla.com/security/token/](https://passport.serpzilla.com/security/token/).\n3. Copy your **API token** and remember your **login** (email) used for registration.\n\n### 2. Install mcporter and add the Serpzilla MCP server\n\n`mcporter` is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.\n\n**Install mcporter globally:**\n```bash\nnpm install -g mcporter\n```\n\nAdd the Serpzilla MCP server:\n\nIt is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN\n(the user's chosen login for registering with serpzilla.com, usually an email address)\nand SERPZILLA_API_TOKEN (the API token received by the user).\nRun the following command, replacing XXX and YYY with user's values:\n\n```bash\nnpx mcporter config add serpzilla --stdio \"sudo docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:latest\"\n```\n\n### 3. Verify the configuration\n\nCheck that the MCP server was added successfully:\n\n```bash\nnpx mcporter list serpzilla\n```\n\n## Using the skill\n\nAfter completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing\na guest post is described below.\n\nThe main entities in the Serpzilla domain for purchasing Guest Posts are:\n\n- *Project* - a container for the entities listed below. To begin posting, you must create a project. A project is \n  created for a specific domain, but there are no restrictions on promoting other domains within the project.\n- *URL* - the address of the page being promoted for SEO. Guest Post placements will be purchased to promote this \n  page. The URL is linked to the project.\n- *Article* - the article to be posted on donor sites. It can be uploaded to the Serpzilla system for use when \n  purchasing placements. After uploading to Serpzilla, articles are reviewed by moderators. For this reason, Articles have statuses. Articles are linked to the project.\n- *Text* - the anchor for the link being posted on the donor page/site. If the user uploads an Article, the Text and \n  URL for the promotion are determined automatically. Text is linked to the project.\n- *Content* - a general entity for Article and Content. It also has its own system for transitioning between statuses.\n- *Placement* - the Guest Post placement being purchased. Placement has a workflow that is reflected in the status \n  transition. Placement is linked to Text and URL.\n\nDescription of placement types:\n\n| Format    | Type                              | Content Provided By          | Required Fields When Buying | Notes                                                                                                 |\n|-----------|-----------------------------------|------------------------------|-----------------------------|-------------------------------------------------------------------------------------------------------|\n| `news`    | Advertiser’s Article (Guest Post) | Advertiser (client)          | `article_id`, `url_id`      | `text_id` not required. The article is fully provided by the client.                                  |\n| `review`  | Publisher’s Article (Guest Post)  | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes a review article. This placement is **more expensive**.                          |\n| `link`    | In The News (Link Insertion)      | Publisher (webmaster)        | `url_id`, `text_id`         | The webmaster writes an article — not a review, but a link naturally embedded into a site news piece. |\n| `archive` | In The Archive (Link Insertion)   | N/A (article already exists) | `url_id`, `text_id`         | Placement occurs in an already existing article on the site.                                          |\n\n\nTo get current user information including account balance:\n\n```bash\nnpx mcporter call serpzilla.get_user_info\n```\n\nTo top up user's balance, refer user to visit: https://passport.serpzilla.com/deposit/\n\n### Step 1: Create a project for your promoted website\n\nCreate a project inside Serpzilla for your domain. Replace **YOUR_SITE.COM** with your actual website URL\n(without `https://`):\n\n```bash\nnpx mcporter call serpzilla.create_project domain=YOUR_SITE.COM\n```\n\n*Important:* Save the returned **PROJECT_ID** (ID field) – you will need it later.\n\nWhen a project is created, Serpzilla automatically generates:\n\n- One **URL** entity with the `domain` as the URL (e.g., https://YOUR_SITE.COM)\n- One **Text** entity with the domain name as the default anchor\n\nYou can later add more URLs and Texts for specific landing pages and anchors.\n\nTo view all your existing projects:\n\n```bash\nnpx mcporter call serpzilla.list_projects\n```\n\n### Step 2. Content preparation\n\nYou must upload an article **before** purchasing a placement. The article will be reviewed by Serpzilla moderators.\nOnly `approved` articles can be used for placements.\n\n**Add an article:**\n\n```bash\nnpx mcporter call serpzilla.add_article project_id=PROJECT_ID url='FULL_URL' title='ARTICLE_TITLE' \\\nmeta_title=\"ARTICLE_META_TITLE\" body='ARTICLE_BODY'\n```\n\nParameters:\n\n- `url` – the full promotion URL (including `https://`), e.g., https://yoursite.com/product\n- `title` – internal title of the article (visible only in Serpzilla UI)\n- `meta_title` – meta title used by the publisher when posting\n- `body` – HTML content of the article, with your backlink(s) already inserted\n\n**Article moderation:**\n\n- After upload, the article status will be `pending`.\n- Moderation usually takes 1–2 business days.\n- If approved, status changes to `approved`; you can then use it in purchases.\n- If rejected, check the reason and re-upload a corrected version.\n\nCheck article status:\n\n```bash\nnpx mcporter call serpzilla.get_project_content_list project_id=PROJECT_ID\n```\n\n**For `review`, `link`, `archive` formats**\n\nNo article upload is needed. Serpzilla will use the `text_id` (anchor) and `url_id` (promoted page).\nThe webmaster writes the content according to the format.\n\n### Step 3: Search for donor sites\n\nWith your **PROJECT_ID**, you can search for available donor sites that accept your desired placement type.\n\n**Basic search command:**\n\n```bash\nnpx mcporter call serpzilla.search_sites project_id=PROJECT_ID link_type=link\n```\n\nValid link_type values: `news`, `review`, `link`, `archive`.\n\n**See all available filters (language, price range, DR, etc.):**\n\n```bash\nnpx mcporter list serpzilla --schema --json\n```\n\n**Get detailed information about a specific donor site:**\n\n```bash\nnpx mcporter call serpzilla.get_site_info site_id=SITE_ID\n```\n\nThis returns metrics (DR, traffic, language), status, price, placement examples, and more.\n\n### Step 4. Buying Guest Posts\n\nOnce you have:\n- `PROJECT_ID`\n- `SITE_ID` (from search results)\n- For `news`: `article_id` (approved) and `url_id`\n- For `review`, `link`, `archive`: `url_id` and `text_id`\n\n**Important:** The `search_history_id` parameter must always be set to an empty string `\"\"` when buying.\n\n#### Examples for each format:\n\n**4.1 Purchase a `news` placement (Advertiser’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=news \\\n  site_id=SITE_ID article_id=ARTICLE_ID url_id=URL_ID search_history_id=\"\"\n```\n\nOptional: `is_content_need_approval=true` – if set, the placement will wait for your approval before the publisher starts.\nUseful if you want to review the final context.\n\n**4.2 Purchase a `review` placement (Publisher’s Article)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=review \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.3 Purchase a `link` placement (In The News – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=link \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\n\n**4.4 Purchase an `archive` placement (In The Archive – Link Insertion)**\n\n```bash\nnpx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=archive \\\n  site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=\"\"\n```\nTo view purchased placements use:\n\n```bash\nnpx mcporter call serpzilla.get_project_placements project_id=PROJECT_ID\n```\n\n### Step 5. Managing Purchased Placements\n\nAfter you purchase a placement, its lifecycle is managed through a set of statuses and transitions. \nYou can perform specific actions to influence the placement’s progress, request changes, cancel orders, \nor handle edge cases like billing or failed purchases.\n\nAll actions are executed using the MCP tool:\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placement_ids=PLACEMENT_ID action=ACTION_NAME\n```\n\nThe [table by link](references/placement_actions.md) lists every SEO‑available action. \nFor each action we describe its purpose, the source status(es), the target status, and any relevant notes.\n\n\n## Additional resources\n\n* [Serpzilla API Documentation](https://serpzilla.com/api/)\n\nFile v1.0.0:README.md\n\n# Serpzilla SEO Guest Posting Skill for OpenClaw\n\nThis skill enables [OpenClaw](https://github.com/openclaw) agents to automate the purchase of guest posts and\nlink insertions via the [Serpzilla](https://serpzilla.com) platform. It provides a structured workflow for\nSEO specialists to search donor sites, manage content, buy placements, and control the entire backlink\nacquisition process.\n\n## Features\n\n- Create projects for your promoted websites  \n- Search and filter donor sites by price, DR, language, etc.  \n- Upload articles for moderation (`news` format)  \n- Buy four types of placements:  \n  - `news` – advertiser’s article (guest post)  \n  - `review` – publisher’s written review article  \n  - `link` – natural link insertion into a news article  \n  - `archive` – link placed into an existing article  \n- Manage purchased placements (approve, cancel, request teardown, etc.)\n\n## Prerequisites\n\n- [OpenClaw](https://github.com/openclaw) agent environment  \n- [mcporter](https://github.com/modelcontextprotocol/mcporter) – MCP server manager  \n- **Docker** – runs the Serpzilla MCP server  \n- **Node.js / npm** – to install `mcporter`\n\n## Repository contents\n- `SKILL.md` – the complete skill definition, including all steps, entity descriptions, and management actions.\n- `references/placement_actions.md` – detailed reference of SEO‑available placement actions\n  (approve_seo, cancel_seo, terminate_seo, etc.).\n\n## See also\n\n* The Serpzilla MCP server Docker image is available at https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags\n* The MCP server source code: https://github.com/stanislav-reshetnev/serpzilla-mcp-server\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn79nhg733pyyfyeymxf0yt6g5862s82\",\n  \"slug\": \"serpzilla-seo-guest-posting\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1777982640511\n}\n\nFile v1.0.0:references/placement_actions.md\n\n# SEO Actions for Managing Placements (Serpzilla)\n\nThe table below lists all available actions for the `serpzilla.perform_placement_action` tool.\n\n| Action name                    | Description\t                                                                                                | From status(es)\t                                                                                | To status\t                       | Notes                                                                                                                       |\n|--------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `approve_seo`                  | Approve a placement after you have reviewed the live page. Marks the placement as successfully completed.   | `STATUS_PLACEMENT_CHECK`                                                                        | `STATUS_APPROVED`                | \tOnly possible when the placement is in the final check stage.                                                              | \n| `approve_content_seo`          | Accept the content provided by the webmaster (for formats where content approval is required).              | `STATUS_ON_CONTENT_APPROVAL`, `STATUS_PLACEMENT_ARBITRATION`                                    | `STATUS_ON_PLACEMENT_GUARANTEED` | After approval the placement moves to a guaranteed state. Usually used for `review`, `link`, or `archive` formats.          | \n| `approve_from_arbitration_seo` | Approve a placement that was sent to arbitration, resolving the dispute in your favour.                     | `STATUS_PLACEMENT_ARBITRATION`                                                                  | `STATUS_APPROVED`                | Use this when the moderator or system decides in your favour.                                                               |\n| `cancel_from_on_placement_seo` | Cancel a placement that is currently in the “on placement” state (before the webmaster has published).      | `STATUS_ON_PLACEMENT`                                                                           | `STATUS_REJECTED`                | Available only 1‑72 hours after the placement entered `STATUS_ON_PLACEMENT`. After 72 hours the action becomes unavailable. |\n| `cancel_from_improve_seo`      | Cancel a placement that is in the “improvement needed” state (webmaster is reworking the content).          | `STATUS_PLACEMENT_IMPROVE`                                                                      | `STATUS_REJECTED`                | Allowed only if the placement has been in `STATUS_PLACEMENT_IMPROVE` for more than 15 days.                                 |\n| `cancel_seo`                   | Generic cancellation for placements in various states where the process has stalled or you are unsatisfied. | `STATUS_MODER`, `STATUS_CLARIFICATION`, `STATUS_ON_PLACEMENT_GUARANTEED`, `STATUS_NEED_APPROVE` | `STATUS_REJECTED`                | Requires the placement to be guaranteed and a timeout condition.                                                            |\n| `terminate_seo`                | Request permanent removal (teardown) of an already approved backlink.                                       | `STATUS_APPROVED`                                                                               | `STATUS_TO_TERMINATE`            | The link will be removed after the webmaster acts on the request.                                                           |\n\n## Workflow Notes\n\n- **Guaranteed placements** (`STATUS_ON_PLACEMENT_GUARANTEED`) are those where the webmaster has confirmed they will complete the work. Most actions on guaranteed placements have stricter timeouts.\n- **Arbitration** (`STATUS_PLACEMENT_ARBITRATION`) is a special state for disputes. You should first try to resolve with the webmaster; if unresolved, use `approve_from_arbitration_seo` or let the moderator decide.\n\n## Example: Cancelling a placement that is stuck in “on placement”\n\n```bash\nnpx mcporter call serpzilla.perform_placement_action placements_id=12345 action=cancel_from_on_placement_seo\n```\n\n## Common Statuses You Will Encounter\n\n| Status                          | Meaning                                    |\n|---------------------------------|--------------------------------------------|\n| STATUS_PHANTOM\t                 | Initial ghost state before any processing. |\n| STATUS_CREATING\t                | Placement is being created in subsystems.  |\n| STATUS_NEED_APPROVE\t            | Awaiting your approval (auto‑buyer mode).  |\n| STATUS_ON_PLACEMENT\t            | Webmaster is expected to place the link.   |\n| STATUS_ON_PLACEMENT_GUARANTEED\t | Webmaster guaranteed the placement.        |\n| STATUS_ON_CONTENT_APPROVAL\t     | Content is ready for your review.          |\n| STATUS_PLACEMENT_CHECK\t         | Live page is being checked by the system.  |\n| STATUS_PLACEMENT_IMPROVE\t       | Webmaster must improve the placement.      |\n| STATUS_PLACEMENT_ARBITRATION\t   | Dispute resolution in progress.            |\n| STATUS_APPROVED\t                | Placement successfully completed.          |\n| STATUS_TO_TERMINATE\t            | Link removal requested.                    |\n| STATUS_TERMINATED\t              | Link removed.                              |\n| STATUS_CHANGE_REQUESTED\t        | Link change requested.                     |\n| STATUS_BUY_FAIL\t                | Purchase attempt failed.                   |\n| STATUS_WAIT_WITHDRAWAL\t         | Draft waiting for payment.                 |\n| STATUS_DELETED\t                 | Permanently deleted.                       |","readmeExcerpt":"Skill: Serpzilla SEO Guest Posting Skill for OpenClaw Owner: stanislav-reshetnev Summary: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform Tags: latest:1.0.3 Version history: v1.0.3 | 2026-06-02T17:48:01.821Z | user site_url search parameter added v1.0.2 | 2026-05-14T15:22:02.962Z | user ClawScan audit fixes v1.0.1 | 2026-05-14T14:50:15.828Z | user Sudo usage re","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npm install -g mcporter"},{"language":"bash","snippet":"npx mcporter config add serpzilla --stdio \"docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:v1.0.8\""},{"language":"bash","snippet":"npx mcporter list serpzilla"},{"language":"bash","snippet":"npx mcporter call serpzilla.get_user_info"},{"language":"bash","snippet":"npx mcporter call serpzilla.create_project domain=YOUR_SITE.COM"},{"language":"bash","snippet":"npx mcporter call serpzilla.list_projects"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: serpzilla-seo-guest-posting\ndescription: Skill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform\nversion: 1.0.0\nauthor: Stanislavus\nuser-invocable: true\ntriggers:\n  - buy guest post for SEO\n  - find donor site for guest posting\n  - serpzilla search donors\n  - configure serpzilla mcp\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🦖\",\n        \"requires\":\n          {\n            \"bins\": [\"mcporter\"],\n            \"env\": [\"SERPZILLA_LOGIN\", \"SERPZILLA_API_TOKEN\"],\n          },\n        \"primaryEnv\": \"SERPZILLA_API_TOKEN\",\n      },\n  }\n---\n\n# Serpzilla SEO Guest Posting\n\n## Description\n\nThis skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.\nIt allows you to automate the search and purchase of guest posts (article placements on donor sites \nthat pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done \nvia the Serpzilla MCP server, managed by the `mcporter` tool.\n\n## Prerequisites\n\nThe following components must be installed and configured on the server where OpenClaw runs:\n\n1. **Docker** – to run the Serpzilla MCP server in an isolated container.\n2. **Node.js and npm** – to install and run `mcporter`.\n3. **OpenClaw** – the agent runtime environment.\n\nBefore using any Serpzilla commands, verify the MCP server is already registered with `npx mcporter list serpzilla`.\n\n## Preliminary Setup\n\nTo fully use this skill, you need to register and configure the connection to the Serpzilla API.\n\n### 1. Registration and API token\n\n1. Register as an advertiser on [Serpzilla.com](https://serpzilla.com/).\n2. Go to the security section at [https://passport.serpzilla.com/security/token/](https://passport.serpzilla.com/security/token/).\n3. Copy your **API token** and remember your **login** (email) used for registration.\n\n### 2. Install mcporter and add the Serpzilla MCP server\n\n`mcporter` is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.\n\n**Install mcporter globally:**\n```bash\nnpm install -g mcporter\n```\n\nAdd the Serpzilla MCP server:\n\nIt is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN\n(the user's chosen login for registering with serpzilla.com, usually an email address)\nand SERPZILLA_API_TOKEN (the API token received by the user).\nRun the following command, replacing XXX and YYY with user's values:\n\n```bash\nnpx mcporter config add serpzilla --stdio \"docker run -i --rm --env SERPZILLA_LOGIN=XXX --env SERPZILLA_API_TOKEN=YYY stanislavusbest/serpzilla-mcp-stdio-server:v1.0.8\"\n```\n\n### 3. Verify the configuration\n\nCheck that the MCP server was added successfully:\n\n```bash\nnpx mcporter list serpzilla\n```\n\n## Using the skill\n\nAfter completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing\na guest post is described below.\n\nThe main entities in the Serpzilla domain for purchasing G"},{"path":"README.md","content":"# Serpzilla SEO Guest Posting Skill for OpenClaw\n\nThis skill enables [OpenClaw](https://github.com/openclaw) agents to automate the purchase of guest posts and\nlink insertions via the [Serpzilla](https://serpzilla.com) platform. It provides a structured workflow for\nSEO specialists to search donor sites, manage content, buy placements, and control the entire backlink\nacquisition process.\n\n## Features\n\n- Create projects for your promoted websites  \n- Search and filter donor sites by price, DR, language, etc.  \n- Upload articles for moderation (`news` format)  \n- Buy four types of placements:  \n  - `news` – advertiser’s article (guest post)  \n  - `review` – publisher’s written review article  \n  - `link` – natural link insertion into a news article  \n  - `archive` – link placed into an existing article  \n- Manage purchased placements (approve, cancel, request teardown, etc.)\n\n## Prerequisites\n\n- [OpenClaw](https://github.com/openclaw) agent environment  \n- [mcporter](https://github.com/modelcontextprotocol/mcporter) – MCP server manager  \n- **Docker** – runs the Serpzilla MCP server  \n- **Node.js / npm** – to install `mcporter`\n\n## Repository contents\n- `SKILL.md` – the complete skill definition, including all steps, entity descriptions, and management actions.\n- `references/placement_actions.md` – detailed reference of SEO‑available placement actions\n  (approve_seo, cancel_seo, terminate_seo, etc.).\n\n## See also\n\n* The Serpzilla MCP server Docker image is available at https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags\n* The MCP server source code: https://github.com/stanislav-reshetnev/serpzilla-mcp-server"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn79nhg733pyyfyeymxf0yt6g5862s82\",\n  \"slug\": \"serpzilla-seo-guest-posting\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1780422481821\n}"},{"path":"references/placement_actions.md","content":"# SEO Actions for Managing Placements (Serpzilla)\n\nThe table below lists all available actions for the `serpzilla.perform_placement_action` tool.\n\n| Action name                    | Description\t                                                                                                | From status(es)\t                                                                                | To status\t                       | Notes                                                                                                                       |\n|--------------------------------|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|----------------------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `approve_seo`                  | Approve a placement after you have reviewed the live page. Marks the placement as successfully completed.   | `STATUS_PLACEMENT_CHECK`                                                                        | `STATUS_APPROVED`                | \tOnly possible when the placement is in the final check stage.                                                              | \n| `approve_content_seo`          | Accept the content provided by the webmaster (for formats where content approval is required).              | `STATUS_ON_CONTENT_APPROVAL`, `STATUS_PLACEMENT_ARBITRATION`                                    | `STATUS_ON_PLACEMENT_GUARANTEED` | After approval the placement moves to a guaranteed state. Usually used for `review`, `link`, or `archive` formats.          | \n| `approve_from_arbitration_seo` | Approve a placement that was sent to arbitration, resolving the dispute in your favour.                     | `STATUS_PLACEMENT_ARBITRATION`                                                                  | `STATUS_APPROVED`                | Use this when the moderator or system decides in your favour.                                                               |\n| `cancel_from_on_placement_seo` | Cancel a placement that is currently in the “on placement” state (before the webmaster has published).      | `STATUS_ON_PLACEMENT`                                                                           | `STATUS_REJECTED`                | Available only 1‑72 hours after the placement entered `STATUS_ON_PLACEMENT`. After 72 hours the action becomes unavailable. |\n| `cancel_from_improve_seo`      | Cancel a placement that is in the “improvement needed” state (webmaster is reworking the content).          | `STATUS_PLACEMENT_IMPROVE`                                                                      | `STATUS_REJECTED`                | Allowed only if the placement has been in `STATUS_PLACEMENT_IMPROVE` for more than 15 days.                                 |\n| `cancel_seo`         "},{"path":"skill-card.md","content":"## Description:\n\nSkill for SEO promotion by purchasing guest posts on trusted donor websites using the Serpzilla platform.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[stanislav-reshetnev](https://clawhub.ai/user/stanislav-reshetnev)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nSEO specialists and webmasters use this skill with OpenClaw to search Serpzilla donor sites, prepare content, purchase guest posts or link insertions, and manage placement lifecycle actions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The workflow handles real Serpzilla API credentials.\n\nMitigation: Use a dedicated, revocable Serpzilla token with the least authority and budget possible, and avoid storing tokens in shell history or plaintext configuration.\n\nRisk: Purchase and placement actions can spend funds, release funds, cancel orders, or remove approved backlinks.\n\nMitigation: Independently confirm every purchase or placement action in the Serpzilla UI before execution.\n\nRisk: The setup relies on third-party tooling and a Docker image that are not pinned by digest in the artifact.\n\nMitigation: Pin and verify mcporter and the Serpzilla MCP Docker image digest before deployment.\n\n## Reference(s):\n\n- [Serpzilla API Documentation](https://serpzilla.com/api/)\n- [SEO Actions for Managing Placements](references/placement_actions.md)\n- [Serpzilla MCP Server Docker Image](https://hub.docker.com/r/stanislavusbest/serpzilla-mcp-stdio-server/tags)\n- [ClawHub Skill Release](https://clawhub.ai/stanislav-reshetnev/skills/serpzilla-seo-guest-posting)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, shell commands, configuration]\n\n**Output Format:** [Markdown guidance with inline shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires mcporter, Docker, SERPZILLA_LOGIN, and SERPZILLA_API_TOKEN.]\n\n## Skill Version(s):\n\n1.0.3 (source: server release metadata; artifact frontmatter reports 1.0.0)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1509,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:18:02.965Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:18:02.965Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-14T02:37:39.832Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}