From dc2f9654fa4c118481849ff9b5683c7b478d1b50 Mon Sep 17 00:00:00 2001 From: Volodymyr Rudenko Date: Tue, 5 May 2026 17:33:15 +0200 Subject: [PATCH 1/2] changelog: sync with v0.2.0 actual scope MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Original entry was written from the spec; missed several changes that landed during execution: registerTool migration with explicit titles, server.prompt(...) runtime registration, per-tool icons[] in tools/list, square 512×512 connector icon, language format correction (ISO 639-1 not 639-2), toolError body propagation, and the prompts[] manifest schema fix. Drops the "new square icon" deferred line — that did ship. --- src/resources/changelog.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/resources/changelog.md b/src/resources/changelog.md index e39e303..cc0170d 100644 --- a/src/resources/changelog.md +++ b/src/resources/changelog.md @@ -3,23 +3,30 @@ ## v0.2.0 (2026-05-04) ### Added -- New tool params: +- **New tool params** (additive, backward-compatible): - `web_fetch`: `expiration`, `difficulty`, `subdivision` - `web_search`: `expiration`, `language`, `display`, `subdivision` - `ai_chat_completion`: `expiration`, `language`, `display`, `device`, `subdivision` -- MCP resources for in-client reference: `docs://massive/pricing`, `docs://massive/geotargeting`, `docs://massive/changelog`. -- MCPB starter prompts: `web_search_full`, `web_fetch_markdown`, `ai_chat_full`, `account_check`. -- README sections: "Pricing & cost control", "Resources". +- **Explicit tool titles** via `server.registerTool(...)` migration. Fixes auto-titlecase quirks like "Ai chat completion" → "AI chat completion". +- **MCP resources** for in-client reference: `docs://massive/pricing`, `docs://massive/geotargeting`, `docs://massive/changelog`. +- **MCPB starter prompts**: `web_search_full`, `web_fetch_markdown`, `ai_chat_full`, `account_check`. Registered both at the manifest level (DXT discovery) and at the MCP server level via `server.prompt(...)` (runtime). +- **Per-tool icons** in `tools/list` responses (48×48 inlined as `data:image/png;base64,…`) so clients render the Massive logo as the per-tool badge. +- **Square 512×512 connector icon** replaces the previous letterboxed image. +- **README sections**: "Pricing & cost control", "Resources", and updated arg tables for each tool. ### Changed - Tool descriptions now enumerate cost-affecting params explicitly (model can be cost-conscious). -- Manifest `description` and `long_description` clarified. +- Manifest `description` and `long_description` clarified; `tools[]` descriptions sync with new params. +- `language`/`display` description corrected: accepts common name, two-letter ISO 639-1 (e.g. `"es"`), or Google code, case-insensitive. (The original draft mentioned ISO 639-2 like `"spa"`, which Massive's API rejects with HTTP 422.) +- `toolError` now propagates the upstream response body (truncated to 1024 chars + truncation marker) into both the text content and `structuredContent.body`. Lets the model self-correct on 4xx errors. Reverses the v0.1 "suppress upstream body" defense-in-depth choice. + +### Fixed +- DXT manifest `prompts[]` schema: `arguments` is now `string[]` (just arg names) and template variables use `${arguments.X}` syntax. The original draft used object-shaped arguments and `{X}` syntax; Claude Desktop's manifest validator rejected it. ### Deferred - Async / `mode=async` polling. - Sticky `session` cookie. - Search pagination (`serps`/`size`/`offset`). -- New square icon (current icon autoscales fine in Claude Desktop). ## v0.1.0 (2026-05-01) From 80a6bca7c8e3f4ea1d08a9a9be40b50dc0d0b718 Mon Sep 17 00:00:00 2001 From: Volodymyr Rudenko Date: Tue, 5 May 2026 17:42:12 +0200 Subject: [PATCH 2/2] Bump to 0.2.1 + split changelog v0.2.0/v0.2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three commits landed on main after v0.2.0 published to npm at bc4ac23: - de7645a (registerTool migration with explicit titles) - ab91a9a (square 512×512 connector icon) - 76720cf..67a0b9d (per-tool icons[] in tools/list — PR #7) Tag v0.2.1 was previously pushed at 97b297f but the publish workflow failed because package.json/manifest.json still said 0.2.0. This commit: - Bumps package.json + manifest.json to 0.2.1. - Splits the changelog so the v0.2.0 entry reflects what's actually on npm at v0.2.0, and a new v0.2.1 entry covers the three post-publish additions. After merge, retag v0.2.1 at the new HEAD to fire publish.yml. --- manifest.json | 2 +- package.json | 2 +- src/resources/changelog.md | 18 +++++++++++++----- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/manifest.json b/manifest.json index 7c7907b..48ad504 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": "0.2", "name": "massive-mcp", "display_name": "Massive Web Render", - "version": "0.2.0", + "version": "0.2.1", "description": "Real-time web access for AI agents — fetch URLs, search Google, query AI chatbots.", "long_description": "Official MCP server for the Massive Web Render API.\n\nFour tools: web_fetch (any URL → Markdown/HTML, with JS rendering, captchas, and geo-targeting), web_search (parsed Google SERP with AI overview + people-also-asked), ai_chat_completion (ChatGPT/Gemini/Perplexity/Copilot answers with structured sources), account_status (credits remaining).\n\nThree reference resources surface inside MCP clients (Connectors panel / @-menu): docs://massive/pricing, docs://massive/geotargeting, docs://massive/changelog. Four starter prompts ship out of the box.\n\nPay-as-you-go pricing — see https://joinmassive.com/pricing. MIT-licensed; source at https://github.com/joinmassive/mcp-server. Compatible with Claude Desktop, Claude Code, Cursor, Continue, Cody, Windsurf, and any MCP-compatible client.", "author": { "name": "Massive Computing, Inc.", "url": "https://joinmassive.com" }, diff --git a/package.json b/package.json index 3b1d813..ddd4ba7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@joinmassive/mcp-server", - "version": "0.2.0", + "version": "0.2.1", "description": "Official MCP server for the Massive Web Render API. Real-time web access for AI agents — fetch any URL, search Google, query AI chatbots — with JS rendering, captcha solving, and 195+ country geo-targeting.", "license": "MIT", "type": "module", diff --git a/src/resources/changelog.md b/src/resources/changelog.md index cc0170d..ee44906 100644 --- a/src/resources/changelog.md +++ b/src/resources/changelog.md @@ -1,5 +1,16 @@ # Changelog +## v0.2.1 (2026-05-05) + +Polish on top of v0.2.0 — visual fixes for Claude Desktop and a runtime API migration. No new tool capabilities. + +### Added +- **Per-tool icons** in `tools/list` responses (48×48 inlined as `data:image/png;base64,…`). Clients render the Massive logo as the per-tool badge instead of a generic "M" placeholder. + +### Changed +- **Explicit tool titles** via `server.registerTool(...)` migration. Fixes Claude Desktop's auto-titlecase rendering of `ai_chat_completion` as "Ai chat completion" — now shows "AI chat completion". Other tools also get explicit titles ("Web fetch", "Web search", "Account status"). +- **Square 512×512 connector icon** replaces the previous letterboxed 343×189 image. Renders correctly in connector listings. + ## v0.2.0 (2026-05-04) ### Added @@ -7,21 +18,18 @@ - `web_fetch`: `expiration`, `difficulty`, `subdivision` - `web_search`: `expiration`, `language`, `display`, `subdivision` - `ai_chat_completion`: `expiration`, `language`, `display`, `device`, `subdivision` -- **Explicit tool titles** via `server.registerTool(...)` migration. Fixes auto-titlecase quirks like "Ai chat completion" → "AI chat completion". - **MCP resources** for in-client reference: `docs://massive/pricing`, `docs://massive/geotargeting`, `docs://massive/changelog`. - **MCPB starter prompts**: `web_search_full`, `web_fetch_markdown`, `ai_chat_full`, `account_check`. Registered both at the manifest level (DXT discovery) and at the MCP server level via `server.prompt(...)` (runtime). -- **Per-tool icons** in `tools/list` responses (48×48 inlined as `data:image/png;base64,…`) so clients render the Massive logo as the per-tool badge. -- **Square 512×512 connector icon** replaces the previous letterboxed image. - **README sections**: "Pricing & cost control", "Resources", and updated arg tables for each tool. ### Changed - Tool descriptions now enumerate cost-affecting params explicitly (model can be cost-conscious). - Manifest `description` and `long_description` clarified; `tools[]` descriptions sync with new params. -- `language`/`display` description corrected: accepts common name, two-letter ISO 639-1 (e.g. `"es"`), or Google code, case-insensitive. (The original draft mentioned ISO 639-2 like `"spa"`, which Massive's API rejects with HTTP 422.) +- `language`/`display` description: accepts common name, two-letter ISO 639-1 (e.g. `"es"`), or Google code, case-insensitive. (Massive's API rejects ISO 639-2 codes like `"spa"` with HTTP 422.) - `toolError` now propagates the upstream response body (truncated to 1024 chars + truncation marker) into both the text content and `structuredContent.body`. Lets the model self-correct on 4xx errors. Reverses the v0.1 "suppress upstream body" defense-in-depth choice. ### Fixed -- DXT manifest `prompts[]` schema: `arguments` is now `string[]` (just arg names) and template variables use `${arguments.X}` syntax. The original draft used object-shaped arguments and `{X}` syntax; Claude Desktop's manifest validator rejected it. +- DXT manifest `prompts[]` schema: `arguments` is `string[]` (just arg names) and template variables use `${arguments.X}` syntax. ### Deferred - Async / `mode=async` polling.