OAuth 2.0 Cross-App Access (ID-JAG) credential_issuer plugin for MCPG (RFC 8693 exchange + RFC 7523 redeem)
Single tool 'issue' has a well-structured input schema with three object parameters (provider, identity, config) and clear descriptions. Tool description is comprehensive (180+ chars) and explains the two-hop OAuth 2.0 flow with RFC references. However, output schema is not documented in the visible code, no return type specification is evident. Parameter descriptions are present but lack detail on expected formats, constraints, and error conditions. The tool performs a sensitive credential-issuing operation (WRITE risk) but lacks explicit error handling guidance or recovery patterns.
Issue an upstream access token by performing a two-hop OAuth 2.0 flow: (1) exchange the caller's subject token for an ID-JAG at the enterprise IdP (RFC 8693), (2) redeem the ID-JAG for an upstream access token at the Resource Authorization Server (RFC 7523)
Output schema not documented. Tool returns an access token but no return type specification is visible in source code. LLMs cannot plan downstream token usage or extract fields without documented output structure.
Parameter 'config' is an object with no documented sub-fields. LLMs cannot determine what keys (audience, redeem_token_url, resource) are valid or required without explicit schema for nested properties.
No error handling guidance. Tool performs credential exchange (sensitive operation) but provides no recovery patterns for common failures (invalid subject_token, IdP unreachable, upstream AS rejection). LLMs cannot self-correct.
Parameter 'identity' description lacks format specification. Does 'subject_token' expect a JWT, SAML assertion, or opaque string? What is the expected 'subject_token_type' format? Ambiguity invites invalid input.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | <=2025-11-25 | v2 |
No timeout or rate-limit documentation. Tool calls external IdP and upstream AS endpoints but no guidance on expected latency, timeout behavior, or retry semantics. Agents may hang or retry indefinitely.