Search / io.satelo/satelo
Satelo
R0· no sign-inWebsites promote each other: Quality Score checks, partner discovery and article placement.
v1.0.0 · active · website · descriptor JSON · versions
Search / io.satelo/satelo
R0· no sign-inWebsites promote each other: Quality Score checks, partner discovery and article placement.
v1.0.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"satelo": {
"type": "http",
"url": "https://satelo.io/mcp",
"headers": {
"Authorization": "Bearer ${SATELO_TOKEN}"
}
}
}
}claude mcp add --transport http satelo https://satelo.io/mcp --header "Authorization: Bearer ${SATELO_TOKEN}"[mcp_servers.satelo]
url = "https://satelo.io/mcp"
bearer_token_env_var = "SATELO_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"satelo": {
"type": "remote",
"url": "https://satelo.io/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:SATELO_TOKEN}"
}
}
}
}{
"mcpServers": {
"satelo": {
"type": "http",
"url": "https://satelo.io/mcp",
"headers": {
"Authorization": "Bearer ${SATELO_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=satelo&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc2F0ZWxvLmlvL21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke1NBVEVMT19UT0tFTn0ifX0%3D"
}{
"servers": {
"satelo": {
"type": "http",
"url": "https://satelo.io/mcp",
"headers": {
"Authorization": "Bearer ${SATELO_TOKEN}"
}
}
}
}{
"mcpServers": {
"satelo": {
"httpUrl": "https://satelo.io/mcp",
"headers": {
"Authorization": "Bearer ${SATELO_TOKEN}"
}
}
}
}extensions:
"satelo":
enabled: true
name: "satelo"
type: streamable_http
uri: "https://satelo.io/mcp"
headers:
"Authorization": "Bearer ${SATELO_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${SATELO_TOKEN}. The registry never accepts secret values.
protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations11 of 11 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: satelo_about (destructiveHint, idempotentHint); satelo_check_site (destructiveHint, idempotentHint); satelo_signup (destructiveHint, idempotentHint); …tools.token_costabout 1,827 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes4 tool changes in 30 daysstability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagesatelo_add_sitechangeddescription, input schemameaning changedRequires API key. Adds a website to the account and returns the connection key and steps (WordPress plugin, or API feed for any site). The site joins the exchange once ownership is verified; its first article (about Satelo) earns satellites.
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.
satelo_place_articlechangeddescriptionRequires 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 satellites; refunded if not published.
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.
satelo_find_hostschangeddescriptionRequires 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 price in satellites and my balance.
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.
satelo_find_siteschangeddescriptionLists 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.
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).
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-95% +updated-11d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://satelo.io/mcp streamable-http | none | yes | 95% | 545 ms | 2025-06-18 | 2026-10-20 |
satelo_aboutread-only | 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. |
satelo_accountread-only | Requires API key. Balance in satellites, sites with status/Quality Score/prices, recent incoming and outgoing articles. |
satelo_add_site | 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. |
satelo_check_siteread-only | 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. |
satelo_find_hostsread-only | 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. |
satelo_find_sitesread-only | 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). |
satelo_place_article | 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. |
satelo_review_article | Requires API key. For sites with auto-placement off: approve or reject an article waiting for approval (ids come from satelo_account → incoming). |
satelo_signup | 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. |
satelo_site_settings | 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). |
satelo_verify_site | Requires API key. Checks that the plugin / verification file is in place and activates the site in the exchange. |
Schemas: list_tools.
{
"name": "io.satelo/satelo",
"title": "Satelo",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://satelo.io/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Optional for public tools. Bearer API key (sk_satelo_…) from https://satelo.io/app/ for account tools."
}
]
}
],
"version": "1.0.0",
"websiteUrl": "https://satelo.io/agents/",
"description": "Websites promote each other: Quality Score checks, partner discovery and article placement."
}