Repository navigation
Release 0.10.16: /mcp/apps names no plan, and monitors.alerts - #34
Merged
Merged
Conversation
/mcp/apps is the surface app stores list, so its refusals and notes name
no plan, price, offer or upgrade link. Gated refusals get fixed plan-free
sentences, other refusals and notes keep only the sentences that name no
plan or link, and results drop unlock, freshness, access, gate and doc
links. A video YouTube has no record of keeps the API's own sentence and
gets no caption note. /mcp is unchanged.
The program client gains arcmira.monitors.alerts(monitorId, { limit? }),
a read of GET /v1/monitors/{id}/alerts.
A refusal's code on /mcp/apps names no plan: filter_unavailable, outside_date_range, or not_available. Answers keep only the fields the tools know. A transcript still being prepared is no longer called captionless. Retired /mcp tool names are unknown tools on /mcp/apps. The sentence filter also drops prices, tiers, subscriptions, purchases and bare links. /mcp keeps its codes, unlocks and field order. The test now reaches every route, reads plan names inside snake_case codes, and fails on gate fields and double spaces.
A transcript in the pending state reads "Arcmira is still preparing this transcript. Read it again in a minute." on /mcp/apps. Any other state that isn't ready keeps "Arcmira can't return this here." The plan-free test now also walks the apps tool list and a transcript answer. The transcript kind arcmira_premium passes only as a source filter value or a result's source; a sentence naming Premium still fails.
…details On /mcp/apps the 401 challenge keeps only its plan-free sentences and carries no unlock, gate or doc link. A result's watch_url must be a YouTube or Arcmira watch link. A refusal's other fields drop values that name a plan, price or other link, and a transcript with a state gets no caption note. A search with no known start date and no match adds no dates sentence. The sentence filter also drops currencies, per-month prices, top-ups, seats and sign-ups. The apps feedback description leaves out its price sentence. /mcp is unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
/mcp/appsis the endpoint app stores list, and store agreements forbid an upsell there. Today its results can carry plan names and upgrade links from the API: a caption-less video says Premium can transcribe it on a paid plan, a gated search filter names the plan that unlocks it, and every gate carries anunlockwith an upgrade URL.Separately, an agent with the MCP server and no API key could not read a monitor's alerts, so a "post my brand's new mentions" job could not start from the monitor.
What
src/surface.tsdefines how each surface shows what the API says./mcppasses the API's words and unlocks through, unchanged./mcp/appsuses fixed plan-free sentences for gated refusals, keeps only the sentences of other refusals and notes that name no plan or link, and dropsunlock,freshness,access,gate,detailsanddoc_url.transcript_unavailablemessage becomes the caption-track sentence on/mcp/apps.arcmira.monitors.alerts(monitorId, { limit? })readsGET /v1/monitors/{id}/alerts, with its line in the describe reference and the monitors rule.Checks
tests/apps-surface.test.tssends 14 refusals, with today's gate wording, through the four/mcp/appsroutes (search, a search filter's name lookup, transcript and feedback). It also checks three search notes and the caption notes. It fails on "Pro", "Pro+", "Premium", "Free", "paid", "upgrade" or "trial", on anunlockkey, or on a link other than a YouTube watch link. It also checks each approved sentence and that/mcpkeeps its unlock.pnpm testpasses 157 of 157.pnpm typecheck,sandbox:check,skill:checkandmanifest:check(21 client calls against the live API document) pass.