Repository navigation
feat(sdks): MCP tools for application-keys, currencies, settings, merchant-realm-mapping, permissions and personal-data - #758
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 6 Skipped Deployments
|
🦋 Changeset detectedLatest commit: 7c89160 The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
application-keys (5 tools), currencies (5), settings (3), merchant-realm-mapping (3), permissions (9) and personal-data (7) each ship a ./mcp export, set up as catalogs and rule-promotions are. Each generates from a new <package>-standalone@v1 bundle that carries a written description for every operation; types.gen.ts, sdk.gen.ts and zod.gen.ts are unchanged. - personal-data postErasureRequest gets x-mcp-risk: update. It is a POST that permanently erases a personal data record, its data set and their logs. - settings-standalone@v1 turns off the global security scheme merge, which would otherwise add a second bearer scheme and change sdk.gen.ts. - Titles: permissions CreateACustomAPIRolePolicy and personal-data get-erasure-requests, whose summaries were miscapitalised or wrong.
field123
force-pushed
the
feat/mcp-tools-admin-packages
branch
from
October 19, 2026 11:32
3509a06 to
7c89160
Compare
5 tasks done
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.
Closes #751. Part of #735.
Summary
Six admin SDKs ship a
./mcpexport, set up the way catalogs and rule-promotions were.update_an_application_key27.1%create_a_currency34.8%put_v2_settings58.6%The over-a-quarter flags in the 3- and 5-tool packages come from small tool counts plus one write tool with a full body schema. None of them is the rule-promotions problem of a shared schema written out in full each time it appears.
Each package now generates from a bundle, and
types.gen.ts,sdk.gen.tsandzod.gen.tscome out byte-identical. settings neededoverride/component-merge: offon its bundle. Without it, the global security-scheme merge adds a second bearer scheme and changessdk.gen.ts.Risk choices
personal-datapostErasureRequest→update. It's aPOSTthat permanently erases a personal data record, the rest of its data set, and their logs.create:CreateAnApplicationKey,createACurrencyandCreateACustomAPIRolePolicy. Each adds a new record.POSTin these packages only reads.Titles
CreateACustomAPIRolePolicy: "Create a Custom API Role Policy" (was "Create A Custom API Role Policy").get-erasure-requests: "List Personal Data Erasure Requests" (was "Get all Personal Data Erasure Request").Credentials in responses
CreateAnApplicationKeyreturnsdata.client_secret. The list, get and update operations returnclient_idonly.deltaholding personal data such as names and emails. That isn't a credential, but it's sensitive.Spec problems found (not fixed here)
put-v2-settings: the request body has nodatawrapper, but the response and the 400 example do.mapping_idis described as "The id of the Application Key".filteris required but declarerequired: false.get-erasure-requestdocuments its 200 as "Created".page[limit]andpage[offset]parameters are typedstring. They type-check here because the zod schemas agree.Evidence
Suites: application-keys 42, currencies 37, settings 38, merchant-realm-mapping 38, permissions 47, personal-data 45, all passing with no type errors. Each includes the generation test that regenerates twice and compares with the committed files.
A second reviewer checked every description against its spec. Five claims the spec didn't support were rewritten.
Live, read-only (approved store): every tool registered on a real
McpServer, and these returned data through a realClient:application_keys_list_application_keys(25), thenget_an_application_keycurrencies_get_all_currencies(3), thenget_a_currencysettings_get_v2_settingsmerchant_realm_mapping_get_merchant_realm_mappingspermissions_list_standard_user_roles(7), thenget_a_standard_user_role, andlist_custom_api_role_policies(2)personal_data_get_logs_ttl,personal_data_get_erasure_requestsLive writes, run by Robert (approved store, through a real
Client):create_a_currencymade XTS andget_a_currencyread it back.update_a_currencyturned it off withenabled: false, a field the update schema doesn't declare, so the tool sent it as an extra body field and the API applied it.delete_a_currencyremoved it, and a read afterwards returned 404.create_an_application_keyreturned aclient_secret.get_an_application_keyreturned no secret, as the descriptions say.update_an_application_keyrenamed it, and the new name came back.delete_an_application_keyremoved it, and a read afterwards returned 404.Not run live: personal-data erasure and the settings and merchant-realm-mapping updates, because they change real data or store-wide settings. Unit tests cover their request wiring.
Merge Danger
Door: two-way
Blast Radius: small
New
./mcpsubpaths and an optional peer; the main entries don't change. Merge order with #757: whichever lands second needsmcp-support.gen.tsre-copied and the generation tests rerun, because #757 changes that file. I'll do that on this branch if #757 lands first.