miromiro-mcp 0.7.3 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -104,7 +104,7 @@ Generated code is never trimmed. Results stop at roughly 20k tokens (25k for `ex
104
104
 
105
105
  The REST API and this local npm server always return everything untrimmed, so `limit` and
106
106
  `full_output` apply to the remote server only. Every tool on both servers accepts
107
- `render: true` (paid API plans and credit packs only - a free account gets `402 render_requires_plan` and nothing runs), plus two more shared arguments:
107
+ `render: true` (paid API plans and credit packs only - a free account gets `402 render_requires_plan` and nothing runs, except when the site itself refuses the request: see Notes), plus two more shared arguments:
108
108
 
109
109
  - `fresh: true` - skip the 24-hour cache and re-extract the live page (charged normally); use when the site just changed
110
110
  - `screenshot: true` (requires `render: true`) - the result gains a `screenshot` field: a public URL of a 1440x900 capture of the page, live for 7 days, at no extra credits - show it to the user to verify an extraction. Pass `'full'` instead of `true` for the entire page height.
@@ -132,6 +132,7 @@ The agent calls `extract_fonts` and returns every family with its font file URLs
132
132
  ## Notes
133
133
 
134
134
  - The API reads static HTML and resolves the full CSS cascade by default, so a fully client-rendered app may return little for images, video, audio and Lottie (tokens, fonts, brand, and code come from CSS and are unaffected). Pass `render: true` on any remote-server tool to run the page in a real browser first so its JavaScript executes (+5 credits). Rendering is included in the paid API plans and credit packs, not in the free account: a free account gets `402 render_requires_plan` before anything runs or is charged.
135
+ - One exception, and it needs no flag: when the SITE refuses a free account's plain request (401, 403 or 406 - publishers commonly turn away datacenter IPs even for a public page), the server retries that call in a real browser automatically and free, a few times a month. The result then carries `usage.renderRescue` (a sentence to read to the user) and `usage.renderRescuesLeft`. So on a free account, do not treat a 401/403/406 as "this site cannot be extracted" until those are used up.
135
136
  - Every result carries `usage` with the credits left this month. If the account holds a credit pack (one-off credits that never expire, bought at https://miromiro.app/api/pricing), `usage.packCredits` is the pack balance left; packs are drawn after the monthly credits, so a free account with a pack keeps working past its 300 credits.
136
137
  - Respect the sites you extract from: check their terms before reusing assets commercially.
137
138
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miromiro-mcp",
3
- "version": "0.7.3",
3
+ "version": "0.7.4",
4
4
  "description": "MCP server for the MiroMiro design-extraction API — give your coding agent the real code, design tokens, assets, SVGs, fonts, and Lottie of any website.",
5
5
  "mcpName": "app.miromiro/miromiro",
6
6
  "type": "module",
package/src/index.mjs CHANGED
@@ -45,7 +45,7 @@ const NAMED_SECTIONS = ['hero', 'header', 'footer', 'pricing', 'features', 'test
45
45
  // client-rendered React/Next/SPA sites that return little statically.
46
46
  const RENDER_ARG = {
47
47
  type: 'boolean',
48
- description: 'Run the page in a real browser first so its JavaScript executes - use for client-rendered (React/Next/SPA) sites, when a normal call came back thin, or after a 403 target_blocked (bot protection refuses plain HTTP requests but usually lets a browser through). Slower, and adds 5 credits to the call. Paid API plans and credit packs only: on a free account it returns 402 render_requires_plan and nothing runs - never pass it as a first attempt, and when a free account gets that error, retry without it and tell the user this page needs JS rendering, a paid feature.'
48
+ description: 'Run the page in a real browser first so its JavaScript executes - use for client-rendered (React/Next/SPA) sites, when a normal call came back thin, or after a 403 target_blocked (bot protection refuses plain HTTP requests but usually lets a browser through). Slower, and adds 5 credits to the call. Paid API plans and credit packs only: on a free account it returns 402 render_requires_plan and nothing runs - never pass it as a first attempt, and when a free account gets that error, retry without it and tell the user this page needs JS rendering, a paid feature. Free accounts still get rendering automatically when the SITE refuses the plain request (401/403/406): the server retries it in a browser at no charge, a few times a month, and the result carries usage.renderRescue explaining what happened - read that sentence out to the user when it appears.'
49
49
  }
50
50
 
51
51
  // Shared input arg: skip the 24h cache for this one call (charged normally).
@@ -587,7 +587,7 @@ const INSTRUCTIONS =
587
587
  'fresh=true bypasses the 24h cache. Every result carries `usage` (credits left; `packCredits` = never-expiring pack balance when the account holds one).'
588
588
 
589
589
  const server = new Server(
590
- { name: 'miromiro', version: '0.7.3' },
590
+ { name: 'miromiro', version: '0.7.4' },
591
591
  { capabilities: { tools: {}, prompts: {} }, instructions: INSTRUCTIONS }
592
592
  )
593
593