Personal Agent Protocol 0.3 published, draft 0.4 in progress · What changed in poppy.json →
PAP Checker/Sites/project-1xtwb.vercel.app
PAP discovery report

project-1xtwb.vercel.app

Publishes a poppy.json with no problems found. Organization: My B2B Store.

Publishes poppy.json
0problems
HTTP 200 Version 0.3 Sign-in direct Routes APIs Checked 1 day ago First seen 6 Nov 2026
Open poppy.json ↗
Findings23 passed · 6 skipped

Results from the Personal Agent Protocol's official Company validator, commit 7205250, draft 0.3 (read-only survey + file check).

Discovery
OK
poppy.json is served over HTTPS at the well-known path
Served at https://project-1xtwb.vercel.app/.well-known/poppy.json.
discovery.https
§3
OK
Every redirect of the well-known URL is to an HTTPS URL
No redirects.
discovery.redirects-https
§3
OK
Redirects of the well-known URL end at /.well-known/poppy.json, with no query
No redirects.
discovery.redirects-well-known
§3
OK
poppy.json is a JSON object
The JSON document a Company publishes at /.well-known/poppy.json.
discovery.json
§2
OK
poppy.json fields have the forms section 3.1 describes
discovery.schema
§2
OK
protocol_version is the version this validator checks
protocol_version 0.3.
discovery.protocol-version
§3.1
OK
organization.domain is the host that serves poppy.json, after redirects
organization.domain project-1xtwb.vercel.app matches the host.
discovery.domain-matches-host
§3.1
OK
poppy.json lists at least one of agent, apis, or web
At least one of agent, apis, or web.
discovery.interface-present
§3.1
OK
Extension names are ones the protocol defines, or start with a domain
Anyone else MUST start an extension's name with a domain they control, such as example.com/gift-wrap.
discovery.extension-names
§3.3
OK
A Company that turns off sign-in lists no way to sign in
Sign-in isn't turned off.
discovery.sign-in-disabled
§3.2
Skipped
The excluded-tasks document loads and has the fields in 9.1
Not checked: the validator checks this only in its online mode, which we do not run.
discovery.excluded-tasks
§9.1
Skipped
Each openapi or mcp reference in an alternative names an API listed in poppy.json
Not checked: the validator checks this only in its online mode, which we do not run.
discovery.alternative-references
§9.2
Sign-in server
OK
The Company has an issuer when it offers account access
A Company that offers sign-in MUST have an OAuth issuer.
metadata.issuer-required
§3.2
OK
The domain's protected resource metadata is for https://{organization.domain} and names authorization servers
metadata.resource-metadata
§3.2
OK
auth.issuer is one of authorization_servers, and is present when there are several
One authorization server, https://project-1xtwb.vercel.app.
metadata.issuer-chosen
§3.1
OK
The issuer publishes OAuth Authorization Server Metadata
Loaded from https://project-1xtwb.vercel.app/.well-known/oauth-authorization-server.
metadata.published
§3.2
OK
The metadata has the fields section 3.2 requires, in the right forms
The Personal Agent uses these fields of the metadata.
metadata.schema
§3.2
OK
The metadata's issuer exactly matches the issuer the protected resource metadata names
MUST check that its issuer exactly matches the issuer it found, character for character.
metadata.issuer-matches
§3.2
OK
protected_resources includes https://{organization.domain}
MUST list https://{domain} for every domain whose issuer it is, with no path, port, or trailing slash.
metadata.protected-resources
§3.2
OK
The metadata has a token_endpoint
metadata.token-endpoint
§3.2
OK
The metadata has a revocation_endpoint
metadata.revocation-endpoint
§3.2
OK
grant_types_supported includes refresh_token
Required, and it MUST include refresh_token (4.4).
metadata.grant-types
§3.2
OK
The metadata has an authorization_endpoint when it offers Direct Sign-In
metadata.authorization-endpoint
§3.2
Skipped
The metadata has a device_authorization_endpoint when it offers Device Sign-In
Not checked: grant_types_supported doesn't include urn:ietf:params:oauth:grant-type:device_code.
metadata.device-authorization-endpoint
§3.2
OK
scopes_supported lists every scope a sign-in can grant
A Company that offers sign-in SHOULD publish it and include every scope a Personal Agent can request (4.7).
metadata.scopes-supported
§3.2
OK
Every scope in scopes_supported has a description
Every scope is described in auth.scopes.
metadata.scopes-described
§4.7
Skipped
Other Company domains select the same issuer
Not checked: The issuer's protected_resources lists no other domain.
metadata.same-issuer
§3.2
Skipped
Other domains with the same issuer have matching scope descriptions and hints
Not checked: The issuer's protected_resources lists no other domain.
metadata.same-auth
§3.2
Skipped
With Mediated Sign-In listed, the issuer's metadata lists its grant type
Not checked: poppy.json doesn't list Mediated Sign-In version 1.
metadata.mediated-grant
Mediated Sign-In §2

poppy.json as served

1.7 KB
{
    "protocol_version": "0.3",
    "organization": {
        "name": "My B2B Store",
        "domain": "project-1xtwb.vercel.app"
    },
    "auth": {
        "scopes": {
            "catalog:read": "Search products and see your account's prices and stock",
            "cart:manage": "Add, change, and remove items, discounts, and delivery details in your cart",
            "dev.ucp.shopping.checkout:manage": "Create, change, and complete checkouts, including placing orders on your account",
            "dev.ucp.shopping.order:read": "See your orders and their delivery status",
            "dev.ucp.shopping.order:manage": "Change or cancel your orders",
            "buyer:read": "See your buyer account and contact details"
        },
        "scope_hints": {
            "catalog:read": {
                "changes": "none",
                "personal_data": false
            },
            "cart:manage": {
                "changes": "reversible",
                "personal_data": true
            },
            "dev.ucp.shopping.checkout:manage": {
                "changes": "irreversible",
                "personal_data": true
            },
            "dev.ucp.shopping.order:read": {
                "changes": "none",
                "personal_data": true
            },
            "dev.ucp.shopping.order:manage": {
                "changes": "irreversible",
                "personal_data": true
            },
            "buyer:read": {
                "changes": "none",
                "personal_data": true
            }
        }
    },
    "feedback": {
        "endpoint": "https://project-1xtwb.vercel.app/poppy/feedback"
    },
    "excluded_tasks": {
        "url": "https://project-1xtwb.vercel.app/poppy/excluded-tasks.json"
    },
    "apis": [
        {
            "type": "mcp",
            "url": "https://project-1xtwb.vercel.app/api/mcp",
            "description": "UCP tools (UCP 2026-08-25): catalog search and lookup, cart, checkout, and orders. Calls carry UCP request metadata, including the platform profile. UCP profile: /.well-known/ucp"
        },
        {
            "type": "openapi",
            "url": "https://project-1xtwb.vercel.app/poppy/openapi.json",
            "description": "UCP REST service (UCP 2026-08-25) at /api/ucp/v1: catalog search and lookup, cart, checkout, orders, and buyer. UCP profile: /.well-known/ucp"
        }
    ],
    "extensions": {
        "ucp": {
            "version": "1"
        }
    }
}

OAuth server metadata as served

0.9 KB
{
    "issuer": "https://project-1xtwb.vercel.app",
    "authorization_endpoint": "https://project-1xtwb.vercel.app/api/oauth/authorize",
    "token_endpoint": "https://project-1xtwb.vercel.app/api/oauth/token",
    "revocation_endpoint": "https://project-1xtwb.vercel.app/api/oauth/revoke",
    "scopes_supported": [
        "dev.ucp.shopping.checkout:manage",
        "dev.ucp.shopping.order:read",
        "dev.ucp.shopping.order:manage",
        "catalog:read",
        "cart:manage",
        "buyer:read"
    ],
    "response_types_supported": [
        "code"
    ],
    "grant_types_supported": [
        "authorization_code",
        "refresh_token"
    ],
    "code_challenge_methods_supported": [
        "S256"
    ],
    "token_endpoint_auth_methods_supported": [
        "client_secret_post",
        "private_key_jwt"
    ],
    "authorization_response_iss_parameter_supported": false,
    "token_endpoint_auth_signing_alg_values_supported": [
        "ES256",
        "PS384"
    ],
    "protected_resources": [
        "https://project-1xtwb.vercel.app",
        "https://project-1xtwb.vercel.app/api/mcp"
    ],
    "dpop_signing_alg_values_supported": [
        "ES256",
        "ES384",
        "PS256",
        "PS384",
        "EdDSA"
    ]
}

Each document is checked against the Personal Agent Protocol draft it declares in protocol_version: 0.1, 0.2 or 0.3. Section numbers refer to that draft's specification. Versions 0.1, 0.2 and 0.3 are published and frozen; draft 0.4 is in progress, and the protocol can still change before 1.0; see the path to 1.0.