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

planmyvisit.to

Publishes a poppy.json with no problems found. Organization: PlanMyVisit by Autoura.

Publishes poppy.json
0problems
HTTP 200 Version 0.3 Sign-in direct, device Routes agent, APIs Checked 18 hours ago First seen 19 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 ↗
Findings2 warnings · 23 passed · 1 note · 4 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://www.planmyvisit.to/.well-known/poppy.json after 1 redirect(s).
discovery.https
§3
OK
Every redirect of the well-known URL is to an HTTPS URL
Redirects: https://planmyvisit.to/.well-known/poppy.json → 301, https://www.planmyvisit.to/.well-known/poppy.json → 200.
discovery.redirects-https
§3
OK
Redirects of the well-known URL end at /.well-known/poppy.json, with no query
Ends at https://www.planmyvisit.to/.well-known/poppy.json.
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 www.planmyvisit.to 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://api.autoura.com/api/auth.
metadata.issuer-chosen
§3.1
OK
The issuer publishes OAuth Authorization Server Metadata
Loaded from https://api.autoura.com/.well-known/oauth-authorization-server/api/auth.
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
OK
The metadata has a device_authorization_endpoint when it offers Device Sign-In
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 planmyvisit.to.
metadata.same-issuer
§3.2
Warning
Other domains with the same issuer have matching scope descriptions and hints
Found: no other domain's poppy.json could be read: planmyvisit.to (its document names organization.domain "www.planmyvisit.to"). The validator couldn't compare auth with any other domain that has this issuer.
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.8 KB
{
    "protocol_version": "0.3",
    "organization": {
        "name": "PlanMyVisit by Autoura",
        "domain": "www.planmyvisit.to"
    },
    "auth": {
        "issuer": "https://api.autoura.com/api/auth",
        "scopes": {
            "planmyvisit": "View your visit plans and preferences, and chat about planning and enjoying your visits",
            "visitplans:create": "Create visit plans",
            "visitplans:update": "Update visit plans",
            "preferences:update": "Update preferences",
            "location:read": "Get my current location",
            "location:update": "Update my current location",
            "companions:location:read": "View travel companions’ current locations",
            "files:read": "Read account resources through the ordinary consumer MCP OAuth scope family",
            "files:write": "Change account resources through the ordinary consumer MCP OAuth scope family",
            "offline_access": "Retain account authorization for later access through ordinary consumer MCP OAuth"
        }
    },
    "feedback": {
        "endpoint": "https://api.autoura.com/api/poppy/feedback"
    },
    "apis": [
        {
            "type": "mcp",
            "url": "https://api.autoura.com/api/mcp",
            "description": "Help people plan and enjoy visits to museums, castles, galleries and other visitor attractions. Before they go, discover places to visit and create personalised visit plans around their interests and preferences. Multiple people can plan a visit together, bringing their individual interests and preferences into a shared plan. While they are there, help them explore the venue, its exhibits and the stories behind them. Read and manage visit plans and preferences with the person's permission"
        }
    ],
    "agent": {
        "protocols": [
            {
                "type": "poppy",
                "endpoint": "https://api.autoura.com/api/poppy/conversations"
            }
        ]
    }
}

OAuth server metadata as served

1.6 KB
{
    "client_id_metadata_document_supported": true,
    "authorization_response_iss_parameter_supported": true,
    "token_endpoint_auth_methods_supported": [
        "none",
        "private_key_jwt"
    ],
    "token_endpoint_auth_signing_alg_values_supported": [
        "ES256",
        "RS256",
        "PS384"
    ],
    "dpop_signing_alg_values_supported": [
        "ES256",
        "RS256"
    ],
    "protected_resources": [
        "https://www.planmyvisit.to",
        "https://planmyvisit.to",
        "https://api.autoura.com/api/mcp"
    ],
    "device_authorization_endpoint": "https://api.autoura.com/api/auth/oauth2/device",
    "revocation_endpoint": "https://api.autoura.com/api/auth/oauth2/revoke",
    "issuer": "https://api.autoura.com/api/auth",
    "authorization_endpoint": "https://api.autoura.com/api/auth/oauth2/authorize",
    "token_endpoint": "https://api.autoura.com/api/auth/oauth2/token",
    "registration_endpoint": "https://api.autoura.com/api/auth/oauth2/register",
    "jwks_uri": "https://api.autoura.com/api/auth/oauth2/jwks",
    "code_challenge_methods_supported": [
        "S256"
    ],
    "grant_types_supported": [
        "authorization_code",
        "refresh_token",
        "urn:ietf:params:oauth:grant-type:device_code"
    ],
    "response_types_supported": [
        "code"
    ],
    "scopes_supported": [
        "files:read",
        "files:write",
        "offline_access",
        "planmyvisit",
        "visitplans:create",
        "visitplans:update",
        "preferences:update",
        "location:read",
        "location:update",
        "companions:location:read"
    ],
    "subject_types_supported": [
        "public"
    ],
    "id_token_signing_alg_values_supported": [
        "RS256"
    ],
    "mcp": {
        "resource": "https://api.autoura.com/api/mcp",
        "scopes_supported": [
            "files:read",
            "files:write",
            "offline_access",
            "planmyvisit",
            "visitplans:create",
            "visitplans:update",
            "preferences:update",
            "location:read",
            "location:update",
            "companions:location:read"
        ]
    }
}

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.