Skip to content

fix: prepare MCP tools for marketplace submission#227

Merged
skvark merged 4 commits into
mainfrom
agent/add-mcp-tool-annotations
Jul 17, 2026
Merged

fix: prepare MCP tools for marketplace submission#227
skvark merged 4 commits into
mainfrom
agent/add-mcp-tool-annotations

Conversation

@skvark

@skvark skvark commented Jul 17, 2026

Copy link
Copy Markdown
Member

Summary

  • require readOnlyHint, openWorldHint, and destructiveHint on every shared MCP tool descriptor
  • classify bounded service-side effects using observable public behavior
  • advertise text-v1 as the explicit default and first enum value for every format-selectable MCP tool
  • add concise text-over-JSON guidance to the MCP skills, server instructions, and installed agent guidance
  • retain JSON as an opt-in compatibility mode without duplicating large payloads into structuredContent
  • add full-surface regression coverage and public reviewer justifications

Release

  • githits: 0.6.30.6.4
  • @githits/mcp: 0.6.20.6.3
  • align the root package, plugin manifests, Gemini extension, and MCP registry package entry at 0.6.4
  • publish both packages through their existing merge-triggered workflows

Why

OpenAI marketplace validation rejects the remote MCP because several tools omit required impact annotations. The remote server consumes tool semantics from @githits/mcp, so the fix belongs in the shared package.

Some tools may create bounded service-side state or begin background preparation when requested public content is not immediately available. The annotations reflect that maximum observable impact without exposing implementation details or implying public, external, or destructive writes.

A published user trace also showed an agent explicitly selecting JSON in 86 of 91 calls despite GitHits' compact text default. The input schemas previously listed json first and did not encode a JSON Schema default. They now expose default: "text-v1" with enum order text-v1, text, json.

Output schema decision

outputSchema is intentionally deferred. The current tools return MCP TextContent, not structuredContent; MCP makes outputSchema optional and requires successful structured results to conform when one is declared. Mirroring the existing JSON envelopes into structuredContent would make default calls carry both compact text and the full structured payload, increasing context use for code, search results, documentation, changelogs, and dependency graphs.

A future structured contract should contain only compact control-plane fields such as status, IDs, cursors, counts, truncation, and next actions—not duplicate large result bodies.

Impact

The MCP schema now always exposes explicit boolean values for all three marketplace impact hints. Tool response behavior and explicit JSON compatibility are unchanged; model-facing schemas and guidance now make the token-efficient format default unambiguous.

Validation

  • bun test — 2,483 passed
  • bun run typecheck
  • bun run build
  • bun run validate:packages
  • bun run validate:packages:mcp-publish
  • full source MCP smoke, including default text and explicit JSON calls
  • source and built MCP registration smoke tests
  • source and built unauthenticated CLI smoke tests
  • mcp-publisher v1.7.9 validation against the official registry
  • canonical MCP skill validation
  • targeted Biome checks for changed files
  • Claude package-information agent eval: 2 relevant calls, neither sent format, no tool or instruction issues

The optional authenticated CLI live smoke reached its final example request and received a backend 429; the secret-free CLI modes passed.

skvark added 4 commits July 17, 2026 11:04
Require marketplace impact hints for every shared MCP tool and classify hidden indexing and crawl writes accurately.

Add regression coverage and reviewer-facing annotation rationales, then bump @githits/mcp to 0.6.3.
Advertise text-v1 as the explicit default and first output-format option for every format-selectable MCP tool while retaining JSON compatibility.

Document why outputSchema is deferred until GitHits has a compact structured result contract that does not duplicate large tool payloads.
Add concise text-over-JSON guidance to the canonical MCP skill, Claude skill, server instructions, and installed agent guidance.

Rewrite marketplace annotation rationales in terms of observable public behavior without exposing implementation-specific service details.
Bump the githits CLI, plugin manifests, Gemini extension, and MCP registry package entry to 0.6.4.

Keep @githits/mcp at its next unpublished patch version, 0.6.3, for the coordinated release.
@skvark skvark changed the title fix: add complete MCP tool annotations fix: prepare MCP tools for marketplace submission Jul 17, 2026
@skvark skvark added the bug Something isn't working label Jul 17, 2026
@skvark
skvark marked this pull request as ready for review July 17, 2026 08:31
@skvark
skvark merged commit 78f01dc into main Jul 17, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant