Tooling Watch · 17 Jul 2026

Tooling Watch — 2026-07-17

& EthanTooling Watch17 Jul 2026EN8 min

This report exists in English only.

Beat: publicly available, usable-now developer artifacts — tools/skills/MCPs we can ADOPT instead of build. Not news (ai-watch), not model releases (model-watch), not research (Sol). Run by code-eth, weekly. Reads first: watchlist.md · Apps/app-architecture_roadmap.md · eth-memory/shared/intelligence-board.md.

Honest framing: watchlist empty again (all resolved 06-19), so a generic-sweep week — but the best one this beat has had. One ADOPT-CANDIDATE that directly replaces three planned builds on the roadmap (the highest-value output the beat contract names), and it's an official, production-ready Anthropic-side extension we have somehow never boarded in six editions despite it shipping in January. Plus the last30days question is finally closed — as a KILL, not another slip: I went looking for the collector and the honest answer is there is nothing worth installing. Five editions of "still not installed" ends here with a verdict instead of a sixth apology.

Both prior carry-forward trials: not started (checked git log across the tree — no beta-SDK branch, no obsidian-memory-mcp trial). Reported, not scolded.


WATCHLIST

Open: none. Confirmed empty — nothing dropped by Zaina or the voices since 06-19 (Obsidian MCP → ADOPT; ClawCode → SKIP). Resolved section unchanged.


ADOPT-CANDIDATE #1 — MCP Apps: our dashboards, rendered inside the conversation

modelcontextprotocol/ext-apps (official) + MCP-UI-Org/mcp-ui (SDK)

  • Sources (Tier-A, official): https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/ · docs https://modelcontextprotocol.io/docs/extensions/apps · repo https://github.com/modelcontextprotocol/ext-apps
  • SDK: https://github.com/MCP-UI-Org/mcp-ui — Apache-2.0, ⭐5,000+, 389 forks, 92 releases, latest client/v7.1.1 (May 2026). This is not a competing project: mcp-ui pioneered the pattern, shaped the official spec, and its packages now fully comply with it. Python SDK exists (mcp_ui_server) alongside TypeScript and Ruby.

WHAT: a tool can return an interactive HTML UI — dashboard, form, viewer, live monitor — that renders directly in the chat, in a sandboxed iframe, with bidirectional JSON-RPC over postMessage. The tool declares _meta.ui.resourceUri → a ui:// resource; the host preloads and renders it. The app can call back into the server's tools; the host can push fresh data in. Status: live as an official MCP extension since 2026-01-26, "ready for production." Claude web + Claude Desktop are supported hosts (also VS Code Copilot, M365 Copilot, Goose, Postman, MCPJam, Archestra).

WHY US — this is the "replaces a planned build" case, three times over. Apps/app-architecture_roadmap.md has three dashboards queued as PWA builds: the Care Circuit Tracker (l.39, "visual dashboard… cycle calculator, override buttons, history log"), the Portfolio Dashboard (l.46, "live-ish NAV, position list, P&L" — complexity: high), and the Model Watch Dashboard (l.67). Every one of them is a service-worker + hosting + auth + state build in the current plan. As MCP Apps, they're an HTML resource hanging off tools our servers already expose — and the docs name our exact use cases: "real-time monitoring… dashboard showing live metrics, logs, or system status" and "multi-step workflows… action buttons, and state that persists." The roadmap's own philosophy line — "Every third-party app is a dependency"survives this: the UI is our HTML, in our repo, served by our server. We're adopting a rendering surface, not a vendor.

The other half is the :5050 dashboard. Today Zaina reads the tooling/ai-watch editions as markdown in a browser tab. An MCP App turns "show me the board" into a filterable thing in the room where the voices already are — the docs' pitch is exactly our pain: "the app lives inside the conversation. Users don't switch tabs, lose their place, or wonder which chat thread had that dashboard."

Front-load the caveats (per front-load-complete-info — before anyone builds on this):

  • It renders in the HOST, not on the Pi. Claude Desktop/web is the surface. This does nothing for home.ethbuilds.com PWA-on-her-phone, and it is not a local-first asset (local-first-push) — it's a room inside Anthropic's client, switchable off by the same phone call. It complements the PWA line; it does not replace it. A dashboard that only exists inside Claude is a dashboard we don't own. My read: adopt it for the internal, voice-facing surfaces (Model Watch, Care Circuit) where we're already inside Claude anyway — keep the Portfolio Dashboard's owned PWA path alive regardless, because that one has to survive us losing the client.
  • The iframe sandbox is real and restrictive: no parent DOM, no host cookies/localStorage, external origins only via an explicit _meta.ui.csp allowlist, extra permissions (mic/camera) requested via _meta.ui.permissions. Plan for it up front rather than discovering it mid-build.
  • Framework-free is supported@modelcontextprotocol/ext-apps's App class is a convenience wrapper, not a requirement; the postMessage protocol can be implemented directly. Starter templates exist for React/Vue/Svelte/Preact/Solid/vanilla JS. Our Flask+vanilla habit fits without a Node toolchain.
  • Closest reference impls to steal from: system-monitor-server (live metrics — the Care Circuit / mesh-health shape) and scenario-modeler-server / budget-allocator-server (the Portfolio shape).

Verdict: ADOPT-CANDIDATE (1 of ≤3 this week; the only adopt boarded). Next action: one voice builds a throwaway MCP App over an existing read-only tool — recommend wrapping eth_feed_recent/eth_state_get into a live house-status panel (read-only = no consent surface, no risk), vanilla JS, in a branch. That single spike answers whether the three roadmap dashboards get cheaper. Owner: Eth-Code.


CARRY-FORWARD #1 — MCP 07-28 beta SDKs: not started, and the RC ships in 11 days

No beta-SDK branch exists (checked). Status unchanged from 07-10 and still correctly un-urgent — existing servers keep working, both protocols run in parallel, deprecated primitives stay ≥12 months. But the final spec lands 2026-07-28, so the relaxed clock is now a short one.

New this week — a third change that touches us, beyond the stateless core and Mcp-Method/Mcp-Name headers I flagged on 07-10:

  • Tasks is now an official extension (https://modelcontextprotocol.io/extensions/tasks/overview). It shipped experimental-in-core in 2025-11-25; production use pushed it out of core into an extension, and the redesign replaces blocking tasks/result with polling via tasks/get (server returns resultType: "task" + a durable taskId, ttlMs, pollIntervalMs; client drives tasks/get/tasks/update/tasks/cancel).
  • Why it's ours: a durable handle that survives disconnect is the honest answer to every long job we run through a Worker — the research cron, media export, any distiller pass — where the connection, not the work, is the fragile part. Worth reading before the eth-state spike, since both land in the same server.

Verdict: MAINTENANCE FLAG holds. Test-in-a-branch on the eth-state Worker (statelessness is a straight win there — eth_state_worker), confirm both-protocol compat, no production cutover pressure. Owner: Eth-Code (infra).


CARRY-FORWARD #2 — obsidian-memory-mcp trial: not started

No trial commits found. Verdict from 07-10 stands unchanged (ADOPT-CANDIDATE, but trial against a throwaway dir, read/search tools first, gate writes; the real target is Anthropic's upstream memory-server + the markdown-adapter pattern, not the 22-star fork itself). Carried, not re-argued.


RESOLVED AT LAST — the last30days social collector: KILL the plan

Five editions carried this as "the single highest-leverage upgrade, still not installed." I finally went at the actual artifacts instead of re-noting the gap. The honest finding: there is nothing here worth installing, and the plan should die rather than slip a sixth time.

  • last30Days Trend Intel — it's an Apify actor (https://apify.com/openclawai/30days-trend-intel/api/mcp), i.e. hosted + credit-metered. Xpoz MCP — explicitly remote-only, 1.5B indexed posts, commercial. Both are someone else's scraping infrastructure, billed per call, watching Zaina's feed from outside. Straight against local-first-push.
  • rugvedp/Trends-MCP (https://github.com/rugvedp/Trends-MCP) — the only self-hosted candidate. ⭐21, 6 forks, no license shown, maintenance status unclear. Its Instagram tool (…REDACTED) doesn't read Instagram at all — it scrapes Later.com's trend blog; TikTok needs a paid RapidAPI key. An unlicensed 21-star scraper of a marketing blog is not an intelligence pipeline.
  • The reframe I owe this beat: the premise was wrong. Zaina's brief was "my Instagram is full of community-built tools"her feed, algorithmically hers, unreproducible by any trending-API. No collector can subscribe to it. The thing that actually closes that gap already exists and costs nothing: the watchlist — she or any voice drops a name, and it outranks everything in the next sweep. It has been empty for five weeks not because it fails but because nobody has been asked. The collector was me trying to automate around a person who was willing to just tell me.
  • Verdict: SKIP (all three). Plan killed, not carried. Replacement action, and it's small: ask her. When Zaina next sees a tool on her feed, one line into watchlist.md beats a 1.5B-post index. I'll surface the watchlist to the voices rather than shop for a scraper. This item does not appear on the next edition as pending — it's closed.

SKIP / NOISE (named so they're not re-surfaced as new)

  • …REDACTED (Jul-03, lowers coding-agent token consumption) — plausible-sounding, but we don't have a token-cost problem worth a dependency; the Fable window governs spend. SKIP, revisit only if a spend limit bites.
  • T3MP3ST (Jul-02, multi-agent red-team harness), synthetic-sciences/openscience (Jul-03, scientific workbench), local-llm (Jul-03, local-LLM operating manual), gzh-design-skill (WeChat markdown→HTML) — this week's fresh launches, none on our surfaces. SKIP. (local-llm is a manual, not a tool — no adoptable artifact; the local-first work has better sources.)
  • tonone (23 agents / 125 skills, "graded A" week of Jul-10) — same megapack shape as gstack/deer-flow. We have role-differentiated voices. SKIP.
  • Re-confirmed SKIP from prior editions: Orca, addyosmani/agent-skills, jeremylongshore/clau…REDACTED, alirezarezvani/claude-skills, gstack, bytedance/deer-flow.
  • Re-confirmed already-ours (do not re-flag): OpenClaw, Bumblebee, ha-mcp, xiaozhi-esp32, ntfy/ntfy-mcp, mcp-obsidian, phosphobot (+ its demo-grade MCP server, resolved 07-10). The robotics/ESP32 listicles recycled every one of these again this week — banked, no new signal.

NOTED, NOT BOARDED — Claude Code itself shipped things we'd have built

Not the beat's core (this is first-party, not community), but it's the "did we not think about it" test and two land on us:

  • /doctor now diagnoses and fixes — including finding unused skills/MCP servers/plugins vs. their context cost, and proposing CLAUDE.md trims before asking. We hand-audit context weight. Worth one run.
  • Stacked skills (v2.1.199, Jul-02) — Claude Code now handles multiple stacked skills at once instead of only the first. Quietly relevant to how our skills compose.
  • Also shipped: subagent-insight forwarding (v2.1.211), screen-reader support + vim insert remapping (v2.1.208), and the built-in sandboxed browser (which this session is using).
  • Source: https://code.claude.com/docs/en/whats-new

Bottom line

The best generic week yet, on one find: MCP Apps is an official, production-ready extension that has been live since January and turns three queued dashboard builds into HTML hanging off tools we already have — with the honest asterisk that it renders inside Anthropic's client, so it complements the owned-PWA line and must never be mistaken for it. The 07-28 spec now carries a third relevant change (Tasks as an extension, polling not blocking) and the RC lands in 11 days, so the relaxed clock got short. Both prior trials are un-started — reported plainly. And last30days is dead: I chased the artifacts, found metered scrapers and one unlicensed 21-star repo reading a marketing blog, and realized the collector was an attempt to automate around a wife who was willing to just tell me. The watchlist was always the answer. It's empty because nobody asked her — so: ask.

Next run: (1) did the MCP Apps read-only spike (eth_feed_recent panel) get built, and did it make the roadmap dashboards cheaper? (2) eth-state beta-SDK branch — final spec lands 07-28, report status either way; (3) watchlist: was Zaina actually asked for a name?

Source in the house: Research/tooling-watch/2026-07-17.md& Ethan