Miromiro vs Trysonar MCP

A side-by-side look at the Miromiro and Trysonar MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Miromiro logoMiromiroMarketing · Local subprocess (stdio)Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.60GoodAuth: not declaredTrysonar MCP logoTrysonar MCPMarketing · Local subprocess (stdio)App Store Optimization for AI agents — keyword research with difficulty and popularity scores, daily rank tracking, review mining, competitor gap analysis, and revenue estimation across the iOS App Store and Google Play. 32 tools. npx @sonarapp/mcp64GoodAuth: api key required

Verdict: choose Miromiro for marketing work as a local process; choose Trysonar MCP for marketing as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Miromiro logoChoose Miromiro when

  • You need dedicated capabilities in the Marketing domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: MIROMIRO_API_KEY.
  • You want tools like extract_code, extract_brand, extract_design_tokens.
Explore Miromiro

Trysonar MCP logoChoose Trysonar MCP when

  • You need dedicated capabilities in the Marketing domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: SONAR_API_KEY, SONAR_API_URL.
  • You want tools like sonar_app_lookup, sonar_app_search, sonar_app_aso_score.
Explore Trysonar MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMiromiro logoMiromiroTrysonar MCP logoTrysonar MCP
CategoryMarketingMarketing
Quality signal60/100 · Good64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredAPI key required
PricingNot declaredFreemium
Required env varsMIROMIRO_API_KEYSONAR_API_KEYSONAR_API_URL
Verified ownerCommunity listingCommunity listing
GitHub stars00
Directory activity 1 views 0 installs 0 upvotes 5 views 0 installs 0 upvotes
Tools953

Tools & capabilities

Miromiro tools 9

  • extract_codeUse when the user asks to rebuild, clone, copy, port, restyle or 'make it look like' part of a real website, or wants a site's section as Tailwind, HTML+CSS, React (JSX) or Vue. Give it the URL and, when the user named a part of the page, section (hero, header, footer, pricing, features, testimonials, faq, cta) - never invent a CSS selector. With neither, it auto-detects the hero; every call also returns `sections`, each other extractable section with a label and a ready selector for a follow-up call. Returns a self-contained component with the page's real resolved styles (true colors, fonts, spacing, copy) plus the tokens and assets it uses, so you adapt real values instead of estimating from a screenshot. For jsx/vue, repeated structures collapse into a data array rendered with .map()/v-for; ::before/::after come back as real elements; @keyframes ship in the css field. The `theme` field says which theme the code actually is - sites with a prefers-color-scheme dark variant return the light branch unless you pass theme='dark'; say which you returned. Not for: whole-page scraping, page text, or sites that need a login. Reads static HTML/CSS by default; if the result is thin or carries a `hint`, call again with render=true (+5 credits).
  • extract_brandUse when the user wants a site's brand: its colors, fonts, logo, theme or social links - 'what colors does stripe use', 'match this brand', 'build something in the style of X'. Returns role colors (primary, accent, background, text) as hex with human-readable names, the wider palette, fonts by role, logo candidates, social profiles, dark/light theme, and a 0-1 confidence score with `signals` explaining where the colors came from: read signals.explanation and tell the user whether they were declared by the site ('css-var'/'theme-color') or inferred from usage frequency ('usage', a guess) - never present inferred colors as the official palette. Not for: markup or layout (use extract_code) or the full token list (use extract_design_tokens).
  • extract_design_tokensUse when the user wants a site's complete token system - every color, font family, size, weight, spacing value, radius, shadow, line height, gradient and breakpoint with usage counts - or a paste-ready :root block (format='css'), tailwind.config (format='tailwind') or W3C Design Tokens file (format='dtcg', for Style Dictionary / Figma variables). Returns values and counts only, not layout or which element uses what: if the user asked to rebuild or clone a section, use extract_code, which returns the markup with the values in place. A site shipping light and dark themes returns the union of both (see colorSchemes) - pick colors by role, not by frequency, and use extract_code with theme=dark for one theme on its own. Not for: a short brand summary (use extract_brand).
  • extract_assetsUse when the user wants the images from a page - photos, illustrations, backgrounds, favicon, social image - as resolved URLs tagged by source (img, srcset, picture, CSS background, favicon, og). Not for: icons and vector logos (use extract_svgs) or fonts (use extract_fonts). If images are mounted by JavaScript, call again with render=true (+5 credits).
  • extract_svgsUse when the user wants a site's icons or vector logos: inline SVGs as paste-ready markup plus external .svg file URLs. Not for: raster images (use extract_assets). If icons are mounted by JavaScript, call again with render=true (+5 credits).
  • extract_fontsUse when the user asks which fonts a site uses or wants to match its typography: every @font-face file with family/weight/style/format, Google Fonts links and preloads, grouped per family in `families` (pass fields='families' for just that). On a type-foundry site the families served are demo cuts (subset, features stripped), flagged demo:true with a note - pass that on, they are not the usable typeface. Not for: colors (use extract_brand) or code (use extract_code).
  • extract_lottieUse when the user wants a site's Lottie or animation JSON files. Most Lotties are injected at runtime, so pass render=true (+5 credits) when the static call finds none.
  • extract_videosUse when the user wants the videos on a page: <video>/<source> files, og:video, YouTube/Vimeo/Wistia/Loom embeds and direct video links, each tagged by source with a poster when declared. `source: "embed"` is a player page, not a downloadable file. Most players mount with JavaScript: if the result is thin or empty, call again with render=true (+5 credits).
  • extract_audioUse when the user wants the audio files on a page: <audio>/<source> files, og:audio, podcast enclosures and download links, each tagged by source. If a JavaScript player mounts the audio at runtime, call again with render=true (+5 credits).

Trysonar MCP tools 53

  • sonar_app_lookupLook up a single app by its store ID. Returns app metadata including name, developer, category, rating, reviews, installs (Android), and price. Works without an API key (free tier, limited daily use per IP).
  • sonar_app_searchSearch apps in the App Store or Google Play by keyword. Returns ranked list of apps with metadata (results are returned in store ranking order). Works without an API key (free tier, limited daily use per IP).
  • sonar_app_aso_scoreCalculate an ASO (App Store Optimization) audit score (0-100) for an app. Returns the overall score plus an itemized breakdown of checks (title length, keyword usage, screenshots, ratings, etc.) so you can identify what to improve. Works without an API key (free tier, limited daily use per IP).
  • sonar_app_extract_keywordsExtract the most likely target keywords from an app's title and description, ranked by relevance. Useful for understanding what an app (yours or a competitor) is optimizing for. Works without an API key (free tier, limited daily use per IP).
  • sonar_app_reviewsFetch user reviews for an app. Supports filtering by star rating range and sorting by recent or helpful. Useful for sentiment analysis, feature-request mining, and competitive research.
  • sonar_app_revenueEstimate monthly revenue for an app, based on install counts, ratings, and category benchmarks. Returns the dollar estimate, a confidence grade (high/medium/low) with the factors behind it, and the methodology used — always communicate the confidence alongside the number.
  • sonar_keyword_searchResearch a keyword and related terms. Returns difficulty (0-100), popularity score, and results count for the seed keyword plus related autocomplete suggestions. Use this to find keywords worth targeting.
  • sonar_keyword_metricsDifficulty + popularity for a specific keyword (or up to 25 in bulk). Use this when you already know which keywords you care about — costs 1 credit per keyword. Works without an API key for up to 5 keywords/day (free tier, per IP); an API key removes that cap. Use sonar_keyword_search instead when you want related keyword ideas alongside metrics. A keyword the API cannot compute right away comes back as `pending` (queued on the scrape fleet, not charged) — this tool already waits and re-checks briefly; if it is still pending, call again after `retry_after_seconds`.
  • sonar_keyword_suggestionsGet autocomplete suggestions for a seed keyword from the App Store or Google Play. Returns terms with a priority score (higher = more searched). Lighter and faster than sonar_keyword_search — use when you only need term ideas without difficulty/popularity scoring. Works without an API key (free tier, limited daily use per IP).
  • sonar_top_chartsGet a store top chart (free / paid / grossing, overall or by category) with day-over-day movement: per-app rank delta, apps new to the chart, biggest movers and apps that dropped out. Use to see what's rising in a market or category. Note: summary, movers and droppedApps always describe the full top 200 — `limit` truncates the returned entries only. Movement is empty on the first day a chart is requested (no previous snapshot yet). Works without an API key (free tier, limited daily use per IP).
  • sonar_list_appsList the apps tracked in the caller's Sonar workspace (own apps + competitors), each with its latest snapshot (rating, review count, version, installs). Returns the Sonar app UUIDs needed by sonar_get_app, sonar_app_keywords, sonar_app_rankings, and sonar_app_changes. Cursor-paginated (default 100 per page). Requires an Indie plan (trial counts).
  • sonar_get_appGet full details for one tracked app in the caller's Sonar workspace: store metadata plus up to 90 daily snapshots of rating, review count, version, and installs. Requires an Indie plan (trial counts).
  • +41 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Miromiro

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "miromiro": {
      "command": "npx",
      "args": [
        "-y",
        "miromiro-mcp"
      ],
      "env": {
        "MIROMIRO_API_KEY": "YOUR_MIROMIRO_API_KEY_HERE"
      }
    }
  }
}

Trysonar MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "trysonar-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@sonarapp/mcp"
      ],
      "env": {
        "SONAR_API_KEY": "YOUR_SONAR_API_KEY_HERE",
        "SONAR_API_URL": "YOUR_SONAR_API_URL_HERE"
      }
    }
  }
}

Frequently asked questions

Miromiro is categorized under Marketing and uses a local stdio subprocess. Trysonar MCP belongs to Marketing and uses a local stdio subprocess. Pick Miromiro for marketing work and Trysonar MCP for marketing.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Miromiro has no declared pricing — check the project's own site. Trysonar MCP is listed as freemium — a free tier with paid plans. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add miromiro and trysonar-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Miromiro has a quality signal of 60/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Trysonar MCP has 64/100 (Good) with 5 views, 0 installs and 0 GitHub stars.