Reference Agent Access Workflow
Created Updated openspec/changes/define-mcp-agent-entrypoint-surface/specs/reference-agent-access-workflow/spec.mdView on GitHub →
ADDED Requirements
Requirement: Dashboard ordinary-agent setup SHALL have one primary entrypoint
The reference operator dashboard SHALL expose one ordinary-agent setup page for grant-scoped AI-app access. The page SHALL be reachable from dashboard navigation and deployment readiness, and SHALL remain separate from owner-token issuance.
Scenario: Operator opens ordinary-agent setup
- WHEN the operator opens the dashboard setup page
- THEN the page SHALL show the running deployment's resolved MCP server URL
as
<public-origin>/mcp - AND it SHALL show concrete setup commands for Claude Code and Codex
- AND it SHALL show URL-shaped setup for ChatGPT, Claude.ai, and generic remote MCP clients
Scenario: Operator needs CLI-first or agent-readable setup
- WHEN the operator needs a shell-agent or agent-readable entrypoint
- THEN the page SHALL expose
pdpp connect <public-origin>and<public-origin>/llms.txtas secondary paths - AND those secondary paths SHALL NOT appear before the primary MCP URL
Scenario: Operator compares ordinary MCP setup to owner-agent access
- WHEN the page references owner-agent access
- THEN owner-agent access SHALL be framed as a separate trusted-local automation path
- AND ordinary MCP setup SHALL NOT ask for owner bearers, control-plane bearers, bearer-token environment variables, or profile selectors
Requirement: DCR response SHALL seed optional identity URI fields from AS_PUBLIC_URL
The AS dynamic client registration (POST /oauth/register) response SHALL
populate the optional identity URI fields (client_uri, logo_uri,
policy_uri, tos_uri) when AS_PUBLIC_URL is configured and the registrant
omits those fields. Caller-supplied values SHALL NOT be overridden.
client_uriSHALL default toAS_PUBLIC_URL(the AS's base URL).logo_uriSHALL default to<AS_PUBLIC_URL>/icon.svg.policy_uriSHALL default toAS_PUBLIC_URL.tos_uriSHALL default toAS_PUBLIC_URL.
When AS_PUBLIC_URL is not configured, all four fields SHALL be absent from the
response when the registrant omits them (the existing omit-undefined behaviour).
Scenario: DCR with AS_PUBLIC_URL set and registrant omits URI fields
- WHEN
AS_PUBLIC_URLis configured - AND a client calls
POST /oauth/registerwithoutclient_uri,logo_uri,policy_uri, ortos_uri - THEN the response SHALL include
client_uriequal toAS_PUBLIC_URL - AND
logo_uriequal to<AS_PUBLIC_URL>/icon.svg - AND
policy_uriequal toAS_PUBLIC_URL - AND
tos_uriequal toAS_PUBLIC_URL
Scenario: DCR does not override explicit registrant-supplied URI fields
- WHEN
AS_PUBLIC_URLis configured - AND a client calls
POST /oauth/registerwith explicitclient_uri,logo_uri,policy_uri, andtos_urivalues - THEN the response SHALL echo back the caller-supplied values unchanged
Scenario: DCR without AS_PUBLIC_URL omits URI fields
- WHEN
AS_PUBLIC_URLis not set - AND a client calls
POST /oauth/registerwithout URI fields - THEN the response SHALL omit
client_uri,logo_uri,policy_uri, andtos_uri