Skip to content

fix(mcp): add per-tool descriptions to DXT manifest - #480

Open
SomSamantray wants to merge 2 commits into
stripe:mainfrom
SomSamantray:fix-455-manifest-tool-descriptions
Open

fix(mcp): add per-tool descriptions to DXT manifest#480
SomSamantray wants to merge 2 commits into
stripe:mainfrom
SomSamantray:fix-455-manifest-tool-descriptions

Conversation

@SomSamantray

Copy link
Copy Markdown

MCP clients that read the local @stripe/mcp DXT manifest directly — for example before the extension's first tools/list round-trip — saw 23 tool names with no indication of what each one does or how risky it is to call. An agent had no signal that create_refund moves real money, that cancel_subscription can trigger an immediate refund or credit, or that create_invoice is just a draft with no charge yet.

This adds an accurate, one-to-two-sentence description to every tool in tools/modelcontextprotocol/manifest.json, with an explicit safety note on the six tools that move money or change customer-visible billing state (create_payment_link, finalize_invoice, create_refund, cancel_subscription, update_subscription, update_dispute).

Fixes #455.

Ran npm run build-dxt-extension (the script that actually parses and packs manifest.json via @anthropic-ai/dxt's packExtension — plain npm run build only bundles src/index.ts and never touches the manifest): it reports Manifest is valid! and builds successfully. Confirmed all 23 entries still have both name and description, in the original array order.

Session-settled decisions carried from planning: scope limited to tools/modelcontextprotocol/manifest.json only, not issues #479/#440 (user-directed, over bundling all three into one PR); authoring the fix in the static DXT manifest rather than the hosted server's tool definitions (user-approved, over editing mcp.stripe.com's closed-source backend, which this repo can't reach).


Compound Engineering

The DXT manifest's 23 tools were declared as bare {"name": ...} entries
with no description, so a client reading only the manifest (before a
live tools/list round-trip) got zero activation guidance. Adds a concise
description to each tool, with an explicit safety note on the tools that
move money or change customer-visible billing state.

Fixes stripe#455
Code review turned up three wording gaps: create_invoice_item lacked
the same non-billing reassurance as its sibling create_invoice;
finalize_invoice undersold that it can trigger an immediate charge
attempt; create_refund's confirm-first clause didn't require the
agent to actually restate the amount/reason rather than accept a
generic yes; cancel_subscription didn't mention that cancellation can
itself issue a refund/credit depending on proration.
@cla-assistant

cla-assistant Bot commented Aug 7, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@cla-assistant

cla-assistant Bot commented Aug 7, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MCP manifest audit: tool names are clear, but DXT manifest lacks per-tool descriptions

1 participant