Serpzilla MCP Server
Enables AI assistants to natively interact with the Serpzilla link-building marketplace.
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
Enables AI assistants to natively interact with the Serpzilla link-building marketplace.
How to connect
How to connect Serpzilla MCP Server to Claude
The server address to paste into Claude settings:
https://mcp.serpzilla.com/mcp
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Serpzilla MCP Server to ChatGPT
The server address to paste into ChatGPT settings:
https://mcp.serpzilla.com/mcp
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Serpzilla MCP Server to Cursor
The server address to paste into Cursor settings:
https://mcp.serpzilla.com/mcp
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (28)
Raw names from tools/list. Only developers need these.
| list_projects | Get list of existing Serpzilla projects with optional pagination, sorting, and filtering. All parameters are optional; calling without arguments returns the first page. |
| create_project | Create a new Serpzilla project for domain promotion. |
| add_article | Create a new Serpzilla Guest Post article (Advertiser's Article) for a project. Returns articleId and urlId needed for purchase. |
| add_texts | Add promoted URLs with anchor texts to a Serpzilla project. Each URL can have multiple anchor texts. Use #a#...#/a# markup within each text to specify the link portion. Used for purchasing placements where the webmaster (copywriter) writes the content. Returns urlId and textId needed for purchase. |
| get_project_content_list | Get a list of content (articles and texts) in a Serpzilla project with filtering, sorting, and pagination. Supports status, type, URL IDs, and search by substring. |
| set_limits | Set usage limits for Serpzilla content (anchors/texts). Targets either specific content IDs or all content of a URL. Limit 0 means no restrictions. |
| update_url | Update a Serpzilla promoted URL: URL, title and link decoration (hiding links from search engines). The url field is required; pass the current URL unchanged if it should not be modified. |
| search_sites | Search Serpzilla donor sites by given filters. |
| search_rent_sites | Search Serpzilla donor sites for rental (monthly-billed) links by URL ID and filters. The search runs asynchronously: this tool polls internally until results are ready (up to 150s) and returns them. The response contains data.resultList (found sites, each with nested pages[].id = pageId identifying purchasable donor pages) and the echo values needed to buy: data.searchId, data.forceSeoWait, data.mosSites, data.pagesExtra. Pass those echo values plus selected page IDs into the purchase_rent_placement tool. |
| search_context_sites | Search Serpzilla donor sites for contextual (Niche Edit) links by URL ID and filters. The search runs asynchronously: this tool polls internally until results are ready (up to 150s) and returns them. The response contains data.resultList (found sites, each with nested pages[] where pages[].id = pageId identifies a purchasable donor page and pages[].snippets[] lists text fragments of that page where a link can be inserted). When buying later via purchase_context_placement, pass the chosen snippet UNCHANGED as its full_text and pick the anchor phrase inside it as its text. The response also carries the echo values needed to buy: data.searchId, data.forceSeoWait, data.mosSites, data.pagesExtra — pass those plus the selected page IDs into purchase_context_placement. |
| get_site_info | Get detailed information about a Serpzilla donor site (site card), including metrics, price, status, languages, statistics, etc. |
| favorites_add_list | Create a new Serpzilla favorites list (a named group of donor domains). Returns the created list ID. |
| favorites_get_lists | Get all Serpzilla favorites lists with domain counts. |
| favorites_rename_list | Rename a Serpzilla favorites list. |
| favorites_delete_list | Delete a Serpzilla favorites list. With is_delete_sites=false (default) the domains are moved to the general favorites list; with true they are deleted along with the list. |
| favorites_get_domains | Get domains from a Serpzilla favorites list (grouped into sections), with pagination and optional filters (sort order, domain zones, availability to buy). |
| favorites_add_domains | Add domains to Serpzilla favorites lists. Domains can be identified by domain IDs, site IDs (from search results), or domain names. At least one identifier kind must be provided. |
| favorites_delete_domains | Remove domains from Serpzilla favorites lists. If list_ids is omitted, the domains are removed from ALL favorites lists. |
| favorites_move_domains | Move domains from one Serpzilla favorites list to another. |
| blacklist_get | Get domains from the Serpzilla Blacklist, grouped into sections. Returns the global Blacklist by default, or a project's own Blacklist when project_id is given. Supports pagination and sorting. |
| blacklist_add_domains | Add domains to the Serpzilla Blacklist by domain IDs and/or domain names. Optionally scope the addition to project blacklists via project_ids. Returns a per-domain result (domainId, isError, errorMessage). |
| blacklist_delete_domains | Remove domains from the Serpzilla Blacklist. Domains are identified by domain IDs only (from blacklist_get sections[].domainsList[].domainId). Optionally limit removal to specific project blacklists via project_ids. |
| purchase_placement | Purchase a placement on a selected Serpzilla donor site. |
| purchase_rent_placement | Purchase rental (monthly-billed) link placements on selected Serpzilla donor pages. The search_id, force_seo_wait, mos_sites, and pages_extra values must come from a prior search_rent_sites call (data.searchId, data.forceSeoWait, data.mosSites, data.pagesExtra). Each page in pages needs: page_id (donor page ID from search results resultList[].pages[].id), url_id (promoted URL ID), and text_id (anchor text ID). Returns the created placement IDs. |
| purchase_context_placement | Purchase contextual (Niche Edit) link placements on selected Serpzilla donor pages. The search_id, force_seo_wait, mos_sites, and pages_extra values must come from a prior search_context_sites call (data.searchId, data.forceSeoWait, data.mosSites, data.pagesExtra). Each item in pages needs: page_id = donor page ID (resultList[].pages[].id from the search response); url_id = promoted URL ID; text = the ANCHOR: a short phrase copied VERBATIM from the chosen snippet — it becomes the link (NO #a#...#/a# markup is used for contextual placements); full_text = that same snippet copied UNCHANGED from resultList[].pages[].snippets[] — the API matches the anchor inside this snippet, so keep its wording and HTML tags (e.g. <b>) intact. Example: for the snippet '- качественно и с душой( <b>Натяжные потолки</b> с точечной подсветкой' use text='Натяжные потолки' and full_text=the whole snippet string. Returns the created placement IDs. |
| get_project_placements | Get a list of all placements in a Serpzilla project. |
| perform_placement_action | Perform an action on one or more Serpzilla placements (e.g., approve, cancel). Allowed actions: force_billing_seo, approve_seo, approve_content_seo, approve_from_arbitration_seo, cancel_from_on_placement_seo, cancel_from_improve_seo, cancel_seo, terminate_seo, cancel_order_change_links_seo, price_changing_action_accept_seo, guarantee_wm, accept_order_change_links_wm, price_changing_action_reject_wm, delete_draft_seo, buy_from_buy_fail_seo, delete_from_buy_fail_seo. |
| get_user_info | Get current Serpzilla user information including account balance (balance field). To top up your balance, visit https://passport.serpzilla.com/deposit/ |