Personal Agent Protocol draft 0.2 published, draft 0.3 in progress · What changes in poppy.json →
PAP Checker/Sites/vtc.com
PAP discovery report

vtc.com

Publishes a poppy.json with no problems found. Organization: VTC.

Publishes poppy.json
0problems
HTTP 200 Version 0.3 Sign-in direct Routes APIs, web Checked 18 hours ago First seen 30 Oct 2026

Draft 0.3 of the Personal Agent Protocol is still in progress: it is not published or frozen, and its text is still changing. These results follow draft 0.3 as written on 2 November 2026, and will change when the draft does.

Open poppy.json ↗
Findings1 warning · 23 passed · 1 note · 5 skipped

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

Discovery
Note
Draft 0.3 is still in progress
Draft 0.3 is not published or frozen yet, and its text is still changing. These results follow it as written on 2 November 2026, and may change when the draft does.
§1
OK
poppy.json is served over HTTPS at the well-known path
Served at https://vtc.com/.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 vtc.com 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
Skipped
Extension names are ones the protocol defines, or start with a domain
Not checked: poppy.json lists no extensions.
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://mcp.vtc.com/poppy/platform.
metadata.issuer-chosen
§3.1
OK
The issuer publishes OAuth Authorization Server Metadata
Loaded from https://mcp.vtc.com/.well-known/oauth-authorization-server/poppy/platform.
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
Warning
Other Company domains select the same issuer
Found: 200 OK. Could not establish the selected issuer on www.vtc.com.
metadata.same-issuer
§3.2
OK
Other domains with the same issuer have matching scope descriptions and hints
Compared with 2 other domain(s).
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

0.5 KB
{
    "protocol_version": "0.3",
    "organization": {
        "name": "VTC",
        "domain": "vtc.com",
        "logo_uri": "https://vtc.com/brands/vtc/logo-blue.png"
    },
    "auth": {
        "issuer": "https://mcp.vtc.com/poppy/platform",
        "scopes": {
            "mcp:read": "See your VTC account name, your Spaces and networks, and your own posts, events and bookings"
        },
        "scope_hints": {
            "mcp:read": {
                "changes": "none",
                "personal_data": true
            }
        }
    },
    "web": {},
    "apis": [
        {
            "type": "mcp",
            "url": "https://mcp.vtc.com/mcp",
            "description": "VTC Spaces. Signed-out use is limited to data already public to guests."
        }
    ]
}

OAuth server metadata as served

1.1 KB
{
    "issuer": "https://mcp.vtc.com/poppy/platform",
    "authorization_endpoint": "https://mcp.vtc.com/poppy/platform/oauth/authorize",
    "code_challenge_methods_supported": [
        "S256"
    ],
    "authorization_response_iss_parameter_supported": true,
    "token_endpoint": "https://mcp.vtc.com/poppy/platform/oauth/token",
    "revocation_endpoint": "https://mcp.vtc.com/poppy/platform/oauth/revoke",
    "grant_types_supported": [
        "urn:ietf:params:oauth:grant-type:jwt-bearer",
        "authorization_code",
        "refresh_token",
        "urn:ietf:params:oauth:grant-type:token-exchange"
    ],
    "response_types_supported": [
        "code"
    ],
    "token_endpoint_auth_methods_supported": [
        "private_key_jwt"
    ],
    "token_endpoint_auth_signing_alg_values_supported": [
        "ES256",
        "RS256"
    ],
    "revocation_endpoint_auth_methods_supported": [
        "private_key_jwt"
    ],
    "revocation_endpoint_auth_signing_alg_values_supported": [
        "ES256",
        "RS256"
    ],
    "dpop_signing_alg_values_supported": [
        "ES256"
    ],
    "scopes_supported": [
        "mcp:read"
    ],
    "protected_resources": [
        "https://vtc.com",
        "https://www.vtc.com",
        "https://app.vtc.com",
        "https://mcp.vtc.com/mcp"
    ],
    "poppy_domains": [
        "vtc.com",
        "www.vtc.com",
        "app.vtc.com"
    ],
    "service_documentation": "https://personalagentprotocol.org/docs/spec"
}

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. Drafts 0.1 and 0.2 are published and frozen; draft 0.3 is in progress, and any draft can change before a stable version; see the path to 1.0.