{"schemaVersion":"1.2.0","id":"https://veilpoint.ca/.well-known/agent-capabilities.json","name":"Opportunity Exchange","operator":"VeilPoint","description":"Keyless Saskatchewan labour-market data, economic outcomes, pathway evaluation, and source provenance for agents.","documentation":"https://veilpoint.ca/agents","discovery":{"llmsText":"https://veilpoint.ca/llms.txt","llmsFullText":"https://veilpoint.ca/llms-full.txt","machineIndex":"https://veilpoint.ca/index.md","openapi":"https://veilpoint.ca/api/v1/openapi.json","jsonCatalog":"https://veilpoint.ca/api/v1/catalog","bulkCatalog":"https://veilpoint.ca/data/catalog.json","sourceStatus":"https://veilpoint.ca/api/v1/sources"},"interfaces":{"rest":{"openapi":"https://veilpoint.ca/api/v1/openapi.json","baseUrl":"https://veilpoint.ca/api/v1/","authentication":"none","access":"keyless, CORS-open"},"mcp":{"endpoint":"https://veilpoint.ca/mcp","transport":"streamable-http","protocolVersion":"2025-06-18","authentication":"none","setupDocumentation":"https://veilpoint.ca/agents#mcp-setup","clientConfiguration":{"mcpServers":{"opportunityExchange":{"type":"http","url":"https://veilpoint.ca/mcp"}}},"tools":["list_roles","get_role","compare_roles","search_jobs","compare_outcomes","rank_communities","list_sectors","get_sector","identify_credential_bottlenecks","search_employers","get_trade_overview","get_real_estate","get_wages","get_rents","list_noc_groups","evaluate_pathways","get_data_sources","get_source_provenance"]},"markdown":{"index":"https://veilpoint.ca/index.md","convention":"<canonical-html-path>.md"},"bulkJson":{"catalog":"https://veilpoint.ca/data/catalog.json","convention":"/data/{dataset}.json"}},"policies":{"publicReadOnly":true,"apiKeyRequired":false,"accountRequired":false,"truthStates":{"field":"meta.evidence.truthState","vocabulary":{"preview":"Synthetic demonstration records — never actionable, never market fact.","measured_aggregate":"Statistical survey estimates (e.g. JVWS vacancies) — measurements, not browsable postings.","snapshot":"Authoritative published data for a stated reporting period; not real-time.","live":"Current actionable provider-backed records; the only state permitting live language.","mixed":"Derived results inherit their weakest material input.","metadata":"Factual self-description of the platform."}},"rateLimit":{"requestsPerWindow":300,"windowSeconds":60,"scope":["/api/v1","/data","/mcp"],"headers":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset"],"onExceeded":"429 with Retry-After"},"citations":"Use meta.citeAs and the canonical URL returned with each resource.","evidence":"Read meta.evidence before quoting a figure; derived resources also include meta.provenance.","privacy":"Pathway constraints are accepted only by POST, are not placed in URLs, and are not stored."}}