Serpzilla SEO Guest Posting
Description
This skill is designed for SEO specialists and webmasters who want to improve their website's backlink profile.
It allows you to automate the search and purchase of guest posts (article placements on donor sites
that pass link equity to your promoted resource) through OpenClaw. Interaction with the platform is done
via the Serpzilla MCP server, managed by the mcporter tool.
Prerequisites
The following components must be installed and configured on the server where OpenClaw runs:
- Docker – to run the Serpzilla MCP server in an isolated container.
- Node.js and npm – to install and run
mcporter. - OpenClaw – the agent runtime environment.
Before using any Serpzilla commands, verify the MCP server is already registered with npx mcporter list serpzilla.
Preliminary Setup
To fully use this skill, you need to register and configure the connection to the Serpzilla API.
1. Registration and API token
- Register as an advertiser on Serpzilla.com.
- Go to the security section at https://passport.serpzilla.com/security/token/.
- Copy your API token and remember your login (email) used for registration.
2. Install mcporter and add the Serpzilla MCP server
mcporter is a CLI tool for managing MCP servers. OpenClaw uses it to communicate with external services.
Install mcporter globally:
npm install -g mcporter
Add the Serpzilla MCP server:
It is necessary to request the user to provide values for the environment variables SERPZILLA_LOGIN (the user's chosen login for registering with serpzilla.com, usually an email address) and SERPZILLA_API_TOKEN (the API token received by the user). Run the following command, replacing XXX and YYY with user's values:
npx 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"
3. Verify the configuration
Check that the MCP server was added successfully:
npx mcporter list serpzilla
Using the skill
After completing the preliminary setup, the skill is ready to use. The typical workflow for purchasing a guest post is described below.
The main entities in the Serpzilla domain for purchasing Guest Posts are:
- Project - a container for the entities listed below. To begin posting, you must create a project. A project is created for a specific domain, but there are no restrictions on promoting other domains within the project.
- URL - the address of the page being promoted for SEO. Guest Post placements will be purchased to promote this page. The URL is linked to the project.
- Article - the article to be posted on donor sites. It can be uploaded to the Serpzilla system for use when purchasing placements. After uploading to Serpzilla, articles are reviewed by moderators. For this reason, Articles have statuses. Articles are linked to the project.
- Text - the anchor for the link being posted on the donor page/site. If the user uploads an Article, the Text and URL for the promotion are determined automatically. Text is linked to the project.
- Content - a general entity for Article and Content. It also has its own system for transitioning between statuses.
- Placement - the Guest Post placement being purchased. Placement has a workflow that is reflected in the status transition. Placement is linked to Text and URL.
Description of placement types:
| Format | Type | Content Provided By | Required Fields When Buying | Notes |
|---|---|---|---|---|
news | Advertiser’s Article (Guest Post) | Advertiser (client) | article_id, url_id | text_id not required. The article is fully provided by the client. |
review | Publisher’s Article (Guest Post) | Publisher (webmaster) | url_id, text_id | The webmaster writes a review article. This placement is more expensive. |
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. |
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. |
To get current user information including account balance:
npx mcporter call serpzilla.get_user_info
To top up user's balance, refer user to visit: https://passport.serpzilla.com/deposit/
Step 1: Create a project for your promoted website
Create a project inside Serpzilla for your domain. Replace YOUR_SITE.COM with your actual website URL
(without https://):
npx mcporter call serpzilla.create_project domain=YOUR_SITE.COM
Important: Save the returned PROJECT_ID (ID field) – you will need it later.
When a project is created, Serpzilla automatically generates:
- One URL entity with the
domainas the URL (e.g., https://YOUR_SITE.COM) - One Text entity with the domain name as the default anchor
You can later add more URLs and Texts for specific landing pages and anchors.
To view all your existing projects:
npx mcporter call serpzilla.list_projects
Step 2. Content preparation
You must upload an article before purchasing a placement. The article will be reviewed by Serpzilla moderators.
Only approved articles can be used for placements.
Add an article:
npx mcporter call serpzilla.add_article project_id=PROJECT_ID url='FULL_URL' title='ARTICLE_TITLE' \
meta_title="ARTICLE_META_TITLE" body='ARTICLE_BODY'
Parameters:
url– the full promotion URL (includinghttps://), e.g., https://yoursite.com/producttitle– internal title of the article (visible only in Serpzilla UI)meta_title– meta title used by the publisher when postingbody– HTML content of the article, with your backlink(s) already inserted
Article moderation:
- After upload, the article status will be
pending. - Moderation usually takes 1–2 business days.
- If approved, status changes to
approved; you can then use it in purchases. - If rejected, check the reason and re-upload a corrected version.
Check article status:
npx mcporter call serpzilla.get_project_content_list project_id=PROJECT_ID
For review, link, archive formats
No article upload is needed. Serpzilla will use the text_id (anchor) and url_id (promoted page).
The webmaster writes the content according to the format.
Step 3: Search for donor sites
With your PROJECT_ID, you can search for available donor sites that accept your desired placement type.
Basic search command:
npx mcporter call serpzilla.search_sites project_id=PROJECT_ID link_type=link
Valid link_type values: news, review, link, archive.
See all available filters (language, price range, DR, etc.):
npx mcporter list serpzilla --schema --json
Get detailed information about a specific donor site:
npx mcporter call serpzilla.get_site_info site_id=SITE_ID
This returns metrics (DR, traffic, language), status, price, placement examples, and more.
Step 4. Buying Guest Posts
Once you have:
PROJECT_IDSITE_ID(from search results)- For
news:article_id(approved) andurl_id - For
review,link,archive:url_idandtext_id
Important: The search_history_id parameter must always be set to an empty string "" when buying.
Examples for each format:
4.1 Purchase a news placement (Advertiser’s Article)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=news \
site_id=SITE_ID article_id=ARTICLE_ID url_id=URL_ID search_history_id=""
Optional: is_content_need_approval=true – if set, the placement will wait for your approval before the publisher starts.
Useful if you want to review the final context.
4.2 Purchase a review placement (Publisher’s Article)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=review \
site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=""
4.3 Purchase a link placement (In The News – Link Insertion)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=link \
site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=""
4.4 Purchase an archive placement (In The Archive – Link Insertion)
npx mcporter call serpzilla.purchase_placement project_id=PROJECT_ID link_type=archive \
site_id=SITE_ID url_id=URL_ID text_id=TEXT_ID search_history_id=""
To view purchased placements use:
npx mcporter call serpzilla.get_project_placements project_id=PROJECT_ID
Step 5. Managing Purchased Placements
After you purchase a placement, its lifecycle is managed through a set of statuses and transitions. You can perform specific actions to influence the placement’s progress, request changes, cancel orders, or handle edge cases like billing or failed purchases.
All actions are executed using the MCP tool:
npx mcporter call serpzilla.perform_placement_action placement_ids=PLACEMENT_ID action=ACTION_NAME
The table by link lists every SEO‑available action. For each action we describe its purpose, the source status(es), the target status, and any relevant notes.