Storm MCP · Schema
EffectiveApprovalsResponse
A user's effective approvals — the union of the AllUsers, group, and individual grants covering them (MCPG-1547 admin read).
CompanyCloudIntegrationAutomationSecurityLow-Code
Properties
| Name | Type | Description |
|---|---|---|
| userId | string | Gets the subject user id. |
| libraries | array | Gets the approved libraries with effective tool scopes and provenance. |
| membershipDegraded | boolean | Gets a value indicating whether group membership resolution was degraded when this set was computed: group grants contributed nothing (fail-closed), so provenance is incomplete rather than an authorit |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/stormmcp/json-schema/stormmcp-effective-approvals-response-schema.json",
"title": "EffectiveApprovalsResponse",
"description": "A user's effective approvals — the union of the AllUsers, group, and individual grants\ncovering them (MCPG-1547 admin read).",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/stormmcp-approvals-api-openapi.yml#/components/schemas/EffectiveApprovalsResponse",
"required": [
"userId",
"libraries",
"membershipDegraded"
],
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "Gets the subject user id.",
"format": "uuid"
},
"libraries": {
"type": "array",
"items": {
"$ref": "#/$defs/EffectiveLibraryApprovalResponse"
},
"description": "Gets the approved libraries with effective tool scopes and provenance."
},
"membershipDegraded": {
"type": "boolean",
"description": "Gets a value indicating whether group membership resolution was degraded when this\nset was computed: group grants contributed nothing (fail-closed), so provenance is\nincomplete rather than an authoritative empty list. Render accordingly."
}
},
"$defs": {
"ApprovalPrincipalType": {
"type": "integer",
"description": "The principal an approval grant row is scoped to (MCPG-1547). Feature-prefixed —\ndeliberately not shared with GatewayAccessPrincipalType or\nAdminToolkitPrincipalType so the member sets can evolve independently.\nStored as a string through the strict `ApprovalPrincipalTypeConverter` (unknown\nstore values throw; never bare `HasConversion<string>()`)."
},
"ApprovalProvenanceResponse": {
"required": [
"principalType",
"principalId",
"toolMode",
"selectedToolNames",
"grantsAppAccess"
],
"type": "object",
"properties": {
"principalType": {
"description": "Gets the covering principal's kind.",
"$ref": "#/$defs/ApprovalPrincipalType"
},
"principalId": {
"type": "string",
"description": "Gets the covering principal's id (Guid Guid.Empty for AllUsers).",
"format": "uuid"
},
"toolMode": {
"description": "Gets the covering grant's tool scope.",
"$ref": "#/$defs/ApprovalToolMode"
},
"selectedToolNames": {
"type": "array",
"items": {
"type": "string"
},
"description": "Gets the covering grant's selection (empty for symbolic All)."
},
"grantsAppAccess": {
"type": "boolean",
"description": "Gets a value indicating whether the row confers app access (AllUsers rows only;\nGroup/User rows always report `true`)."
}
},
"description": "One covering grant in an effective-approval result — the PRD D1 \"Already approved\nfor: …\" provenance (AS6), reported per `(library, principal)` so the caller never\nre-derives membership."
},
"ApprovalToolMode": {
"type": "integer"
},
"EffectiveLibraryApprovalResponse": {
"required": [
"libraryId",
"effectiveToolMode",
"selectedToolNames",
"provenance"
],
"type": "object",
"properties": {
"libraryId": {
"type": "string",
"description": "Gets the library id.",
"format": "uuid"
},
"effectiveToolMode": {
"description": "Gets the effective tool scope. ApprovalToolMode.All is symbolic — the\nconsuming surface expands it against its own live tool inventory.",
"$ref": "#/$defs/ApprovalToolMode"
},
"selectedToolNames": {
"type": "array",
"items": {
"type": "string"
},
"description": "Gets the union of the covering selections (empty when\nApprovalToolMode EffectiveLibraryApprovalResponse.EffectiveToolMode is ApprovalToolMode.All)."
},
"provenance": {
"type": "array",
"items": {
"$ref": "#/$defs/ApprovalProvenanceResponse"
},
"description": "Gets the covering grants, one per principal."
}
},
"description": "A user's effective approval on one library (MCPG-1547 admin read)."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/stormmcp-effective-approvals-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.