# Agent access

Canonical: https://veilpoint.ca/agents
Retrieved: 2026-07-27T07:10:20.083Z
Cite: Opportunity Exchange (VeilPoint), "Agent access", https://veilpoint.ca/agents, retrieved 2026-07-27.

Every public machine interface is keyless and read-only: a streamable-HTTP MCP server, a JSON REST API described by OpenAPI 3.1, markdown twins of every covered page, and bulk JSON snapshots.

## MCP setup

- Endpoint: https://veilpoint.ca/mcp — streamable HTTP, stateless JSON-RPC POST
- Protocol: POST `initialize`, then `notifications/initialized`, `tools/list`, `tools/call`.
- No API key, no account, no retained session.

Client configuration:

```json
{
  "mcpServers": {
    "opportunityExchange": {
      "type": "http",
      "url": "https://veilpoint.ca/mcp"
    }
  }
}
```

## Discovery documents

- Agent capability manifest: https://veilpoint.ca/.well-known/agent-capabilities.json
- OpenAPI 3.1: https://veilpoint.ca/api/v1/openapi.json
- Endpoint catalogue: https://veilpoint.ca/api/v1/catalog · bulk catalogue: https://veilpoint.ca/data/catalog.json
- Agent index: https://veilpoint.ca/llms.txt · full corpus: https://veilpoint.ca/llms-full.txt · machine index: https://veilpoint.ca/index.md

## Truth states

Every envelope reports `meta.evidence.truthState` from one closed vocabulary:

- `preview` — synthetic demonstration records; never actionable, never market fact.
- `measured_aggregate` — statistical survey estimates (JVWS vacancies): measurements, not browsable postings.
- `snapshot` — authoritative published data for a stated period; real, dated, not real-time.
- `live` — current actionable provider-backed records; the only state permitting live language.
- `mixed` — derived results inherit their weakest material input.

## Policies

- Every JSON envelope carries `meta.evidence` and `meta.citeAs`; read the evidence object (`truthState`, `isActionable`, `qualification`) before quoting a figure.
- Pathway-evaluation constraints travel only in a POST body: never in URLs, never stored.
- Rate limit: 300 requests per 60s per client on `/api/v1`, `/data` and `/mcp`. Every limited response carries `RateLimit-Limit`, `RateLimit-Remaining` and `RateLimit-Reset`; a 429 carries `Retry-After`.
