Websites promote each other: Quality Score checks, partner discovery and article placement.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional for public tools. Bearer API key (sk_satelo_…) from https://satelo.io/app/ for account tools.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Explains Satelo: websites promote each other with partner articles exchanged in circles (A→B→C→A), an internal currency (satellites ◉), pricing and how an AI agent can enrol a site. Call this first if unsure.
This tool takes no arguments.
Explains Satelo: websites promote each other with partner articles exchanged in circles (A→B→C→A), an internal currency (satellites ◉), pricing and how an AI agent can enrol a site. Call this first if unsure.
No arguments.
{
"type": "object",
"required": [],
"properties": [],
"additionalProperties": false
}Requires API key. Balance in satellites, sites with status/Quality Score/prices, recent incoming and outgoing articles.
No arguments.
{
"type": "object",
"required": [],
"properties": [],
"additionalProperties": false
}Requires API key. Adds a website to the account. Methods: "wp" = WordPress plugin (returns the connection key and steps); "ghost" = Ghost, no plugin: pass the owner's Ghost Admin API URL and Admin API key (Ghost Admin → Settings → Integrations → custom integration), Satelo verifies them and the site is active at once; "api" = any other site renders the Satelo feed (static site generators such as Hugo, Astro, Jekyll, Eleventy or Next.js use this). Drupal 10/11 and Joomla 4.4/5 sites use "wp" with platform "drupal" or "joomla": the owner installs the Satelo module (https://satelo.io/downloads/satelo-drupal.zip) or system plugin (https://satelo.io/downloads/satelo-joomla.zip) and pastes the same connection key; both are first releases. The site joins the exchange once ownership is verified; its first article (about Satelo) earns satellites.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| niche | string | |
| domain* | string | Domain |
| method | string | wp = WordPress plugin (also Drupal module / Joomla plugin, see platform), ghost = Ghost Admin API key, api = any site renders the feed |
| platform | string | method "wp" only: which CMS the push connector runs on (default wordpress); selects the install steps |
| ghost_drafts | boolean | Ghost only: create posts as drafts for the owner to publish in Ghost (default: publish) |
| ghost_admin_key | string | Ghost only: Admin API key "id:secret" (secret: never publish it) |
| ghost_admin_url | string | Ghost only: Admin API URL, e.g. https://blog.example.com |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"lang": {
"enum": [
"en",
"ru"
],
"type": "string"
},
"niche": {
"enum": [
"tech",
"ai",
"saas",
"marketing",
"business",
"finance",
"crypto",
"education",
"career",
"health",
"travel",
"food",
"home",
"lifestyle",
"fashion",
"beauty",
"sports",
"games",
"auto",
"realestate",
"family",
"pets",
"local",
"other"
],
"type": "string"
},
"domain": {
"type": "string",
"description": "Domain"
},
"method": {
"enum": [
"wp",
"ghost",
"api"
],
"type": "string",
"description": "wp = WordPress plugin (also Drupal module / Joomla plugin, see platform), ghost = Ghost Admin API key, api = any site renders the feed"
},
"platform": {
"enum": [
"wordpress",
"drupal",
"joomla"
],
"type": "string",
"description": "method \"wp\" only: which CMS the push connector runs on (default wordpress); selects the install steps"
},
"ghost_drafts": {
"type": "boolean",
"description": "Ghost only: create posts as drafts for the owner to publish in Ghost (default: publish)"
},
"ghost_admin_key": {
"type": "string",
"description": "Ghost only: Admin API key \"id:secret\" (secret: never publish it)"
},
"ghost_admin_url": {
"type": "string",
"description": "Ghost only: Admin API URL, e.g. https://blog.example.com"
}
},
"additionalProperties": false
}Free Quality Score (0–100) for any domain from open data: popularity, link graphs (Majestic, Common Crawl), domain age, content and technical health. Brand-new sites score 0.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain, e.g. example.com |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain, e.g. example.com"
}
},
"additionalProperties": false
}Requires API key. Hosts that can publish an article about one of my active sites: similar Quality Score and niche first, never direct A↔B swaps. Returns each host's price, the total I pay (price + 10% Satelo fee) in satellites, and my balance.
| Argument | Type | Description |
|---|---|---|
| domain* | string | My site to promote |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "My site to promote"
}
},
"additionalProperties": false
}Lists active sites in the Satelo network that accept partner articles, optionally filtered by niche, language and Quality Score range. Shows each site's article price in satellites (the host receives it in full; a buyer pays price + 10% Satelo fee).
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| niche | string | |
| max_qs | integer | |
| min_qs | integer |
{
"type": "object",
"required": [],
"properties": {
"lang": {
"enum": [
"en",
"ru"
],
"type": "string"
},
"niche": {
"enum": [
"tech",
"ai",
"saas",
"marketing",
"business",
"finance",
"crypto",
"education",
"career",
"health",
"travel",
"food",
"home",
"lifestyle",
"fashion",
"beauty",
"sports",
"games",
"auto",
"realestate",
"family",
"pets",
"local",
"other"
],
"type": "string"
},
"max_qs": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"min_qs": {
"type": "integer",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}Requires API key. Orders publication of an article about my site on a host from satelo_find_hosts (or the best match if host is omitted). The agent writes the article: original, useful to the host's readers, 1,500+ characters, 1–2 natural links to my site. Markup: blank line = paragraph, "## " = subheading, "- " = list, [text](https://url) = link. Spends the host's price + 10% Satelo fee in satellites; refunded automatically if not published.
| Argument | Type | Description |
|---|---|---|
| host | string | Host domain from satelo_find_hosts (optional: best match) |
| link* | string | URL on my site to link to |
| text* | string | Article body, 1,500–30,000 chars |
| title* | string | Article title, 10–120 chars |
| domain* | string | My site to promote |
{
"type": "object",
"required": [
"domain",
"title",
"text",
"link"
],
"properties": {
"host": {
"type": "string",
"description": "Host domain from satelo_find_hosts (optional: best match)"
},
"link": {
"type": "string",
"description": "URL on my site to link to"
},
"text": {
"type": "string",
"description": "Article body, 1,500–30,000 chars"
},
"title": {
"type": "string",
"description": "Article title, 10–120 chars"
},
"domain": {
"type": "string",
"description": "My site to promote"
}
},
"additionalProperties": false
}Requires API key. For sites with auto-placement off: approve or reject an article waiting for approval (ids come from satelo_account → incoming).
| Argument | Type | Description |
|---|---|---|
| decision* | string | |
| order_id* | integer |
{
"type": "object",
"required": [
"order_id",
"decision"
],
"properties": {
"decision": {
"enum": [
"approve",
"reject"
],
"type": "string"
},
"order_id": {
"type": "integer"
}
},
"additionalProperties": false
}Sends a sign-in link to the site owner's email (no password). After signing in they can create an API key for this MCP server in the dashboard. Only use with the owner's own email and consent.
| Argument | Type | Description |
|---|---|---|
| lang | string | |
| email* | string | Site owner's email |
{
"type": "object",
"required": [
"email"
],
"properties": {
"lang": {
"enum": [
"en",
"ru"
],
"type": "string"
},
"email": {
"type": "string",
"description": "Site owner's email"
}
},
"additionalProperties": false
}Requires API key. Set auto-placement (publish incoming articles automatically), whether the site accepts articles, niche, language, or the owner's own article price in satellites (null = use Satelo's recommendation).
| Argument | Type | Description |
|---|---|---|
| auto | boolean | |
| lang | string | |
| niche | string | |
| price | number | null | |
| domain* | string | Domain |
| accepts | boolean |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"auto": {
"type": "boolean"
},
"lang": {
"enum": [
"en",
"ru"
],
"type": "string"
},
"niche": {
"enum": [
"tech",
"ai",
"saas",
"marketing",
"business",
"finance",
"crypto",
"education",
"career",
"health",
"travel",
"food",
"home",
"lifestyle",
"fashion",
"beauty",
"sports",
"games",
"auto",
"realestate",
"family",
"pets",
"local",
"other"
],
"type": "string"
},
"price": {
"type": [
"number",
"null"
],
"maximum": 10000,
"minimum": 1
},
"domain": {
"type": "string",
"description": "Domain"
},
"accepts": {
"type": "boolean"
}
},
"additionalProperties": false
}Requires API key. Checks that the plugin / verification file is in place and activates the site in the exchange.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain"
}
},
"additionalProperties": false
}