Opportunity Exchange
by veilpoint.ca in Markets & finance
Keyless Saskatchewan labour-market data: measured wages and rents, roles, jobs, outcomes, pathways.
https://veilpoint.ca/mcp- Tools
- 72
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 344 ms
- 449 ms slowest 5%
- Last check
- Passed
- 1 h ago, next in 4 h
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"opportunity-exchange": {
"type": "http",
"url": "https://veilpoint.ca/mcp"
}
}
}72 tools
- investigate_economic_question
Turn a natural-language economic question into an inspectable deterministic plan, resolve governed entities, execute a bounded set of existing OEX graph/data primitives, and return a citation-ready evidence bundle. OEX does not invoke a hosted model or generate a hidden…
- inspect_knowledge_frontier
What OEX has asked about a subject, what it could not conclude, why, and which registered question logically follows. Governed and deterministic: every field is a typed governed value or a fixed catalogue constant, no model is invoked, and nothing is derived from prose. This is…
- resolve_entities
Resolve a user-supplied name, slug, NOC code, SGC code, program, sector or governed source to its canonical OEX identity. Call this before joining datasets when the identifier is uncertain. Results include the correct follow-up MCP tool and arguments.
- get_entity_context
Fetch the governed context for one resolved entity in a single call. Accepts a canonical id, local slug or exact name and routes to the existing occupation, municipality, sector, training, NOC or source resource so evidence and provenance are preserved.
- query_knowledge_graph
Query the materialized semantic graph without downloading whole datasets. Resolve an entity name/code and optional municipality geography, then return typed facts and relationships. This supports municipality-by-NAICS GDP and business queries without encoding classifications in…
- get_knowledge_graph_status
Return the current database graph inventory by entity type, predicate and metric plus deterministic core reconciliation. ok=true means every governed core entity, alias, edge and fact is present; additional materializers may add records.
- compare_municipalities
Compare 2–10 exact Saskatchewan municipalities using the newest governed fact for each standard economic metric. A metric is comparable only when all resolved municipalities have the same unit and reference period; missing and mismatched evidence is returned explicitly.
- list_roles
The Saskatchewan occupation catalogue: id, title, NOC code, sector, hourly wage, demand score. Start here to find role ids.
- get_role
One occupation in full: market figures, entry requirements, working conditions, training programs, and per-community outcomes (net and discretionary monthly income at the median wage).
- compare_roles
Compare two or three roles using the shared occupation fields: wages, demand, outlook, entry requirements and work profile.
- search_hiring_activity
Source-attributed hiring-activity evidence, newest first and filterable by occupation, sector and geography. data.recordPurpose and each row recordPurpose are hiring_activity_evidence; rows are observations with isActionable=false, not jobs offered for application through OEX…
- compare_outcomes
The wage-vs-cost join: what an hourly wage actually leaves over each month in every Saskatchewan community, after tax, housing, utilities and commuting. Pass occupation (models its median wage, with posting counts; their truth state is in meta.evidence) or wage.
- rank_communities
Rank Saskatchewan communities by monthly discretionary income for exactly one role or explicit hourly wage.
- list_sectors
Sector rollups with provider-qualified hiring-record counts, median wage and occupation demand. Candidate profiles are excluded. Read meta.evidence before interpreting a count.
- get_sector
One sector: its occupations, provider-qualified postings by community, and notable employers.
- summarize_credential_demand
Aggregate hiring records associated with occupational credential requirements. Candidate profiles and holder counts are excluded; the result describes demand evidence, not a proven shortage.
- search_employers
Search the public business directory by name, municipality, sector group and observed hiring flag. Preview providers return modelled activity scenarios, not business claims.
- get_trade_overview
Saskatchewan merchandise exports by NAPCS section from Statistics Canada. Station-level CGC rows are excluded pending commercial redistribution permission.
- get_real_estate
Housing market by community: median price, listings, market velocity, and the own-vs-rent monthly cost on the local wage. Pass municipalityId for one community with the price trend and full ownership model.
- search_licensed_businesses
Named businesses holding a municipal licence in one community, from an attributed City snapshot. Answers who exists and in which industry, NOT who is hiring — use search_employers for that. Each row is a licence held on the reference date: it is not a legal-entity register, not…
- get_wages
Measured wages and vacancies (Statistics Canada, real data): LFS median/average hourly wages by occupation group × province, and JVWS job vacancies with average offered hourly wage by NOC 2021 unit group × province/territory. Pass noc for one unit group across geographies…
- get_rents
Measured rental markets (CMHC Rental Market Survey via Statistics Canada, real data): average rents by unit type (bachelor to 3+ bedroom) and rental vacancy rates for every surveyed centre in Canada, October survey. Pass province for one province’s centres, centre (cmhcCode) for…
- list_noc_groups
The complete NOC 2021 occupational classification: all 516 unit groups with bilingual titles, TEER tiers, and platform coverage flags. Use to map any Canadian occupation to its code.
- evaluate_pathways
The decision tool: evaluate realistic routes into work for a person's stated credentials, education, experience, driver licence, relocation boundary, housing and family needs, savings, and retraining limit. Returns pass/conflict/unknown plus the same ordered, versioned evidence…
- inspect_procurement_activity
Inspect official Saskatchewan CanadaBuys procurement observations by buyer, notice, or UNSPSC product/service category. Returns current and historical lifecycle evidence, amendments, conflicts, provenance, and explicit missing-evidence boundaries. It does not rank tenders, infer…
- assess_procurement_relevance
Compare the supply categories a business has published against the UNSPSC categories official buyers have requested. Returns category compatibility only, classed as inferred_compatibility: it establishes no qualification, eligibility, supplier relationship, competitiveness, or…
- assess_workforce_demand
Report occupational demand, credential demand, training availability and a training-route constraint indicator separately. It does not combine them into a shortage claim: a shortage is a claim about labour supply and requires a credential-holder denominator OEX does not hold…
- find_potential_suppliers
Find businesses whose published supply categories match the categories a business has published as things it buys. Returns potential_compatibility only: no relationship is asserted, neither party has said they have done business, and neither may be aware of the other. Nothing is…
- find_potential_customers
Find businesses whose published purchasing categories match the categories a business has published as things it can supply. Returns potential_compatibility only: it is not a customer list, and a business appearing in it has expressed no interest in anything. Nothing is matched…
- list_economic_signals
List governed Saskatchewan economic signals from official structured sources. Each row preserves lifecycle state and uncertainty; notices do not prove an award, project, hiring or outcome.
- get_economic_signal
Get one governed economic signal by its source-stable id, including provenance, lifecycle state, mappings and uncertainty boundaries.
- get_emerging_signals
Backward-compatible alias for list_economic_signals.
- get_data_sources
Read the governed upstream source registry: publisher datasets, stable source ids, licence decisions, approved and excluded uses, checked releases, materialization bindings and refresh controls.
- get_data_providers
Read runtime provider contracts grouped as evidence, preview, planned, first-party and derived. Only the evidence group is eligible to support factual claims.
- get_source_provenance
Resolve either a governed upstream source id or runtime provider id. Returns the matching source or categorized provider with its lineage; omit id for the upstream source registry.
- resolve_citation
Resolve a public graph assertion citation to its canonical entity or entities, exact assertion, source, observation time, truth state, confidence, publication scope, methodology and provenance. Accepts the OEX citation URN, token, or resolver URL returned beside a graph fact or…
- get_economy_overview
Modeled community GDP for Saskatchewan: official provincial sector GDP (36-10-0711-01, 2022 current dollars) allocated across all 951 census subdivisions by measured activity weights, reconciling to provincial totals. Returns benchmark/allocated/residual totals, top communities…
- get_municipality_evidence_coverage
Evidence availability and confidence-gate work queue for all 17 Saskatchewan cities and 149 towns. Returns current Tier A–D counts, evidence-domain coverage, public-model input counts, local-context status and the next defensible data action for each municipality.
- get_community_economy
One community’s GDP report by 2021 SGC census subdivision code (e.g. 4708004 for Swift Current): central estimate with the income/production range and every sector’s amount and percentage share, or the suppression reason where the data cannot support a point estimate. Codes come…
- resolve_entity
Resolve user language or an official code to the canonical OEX identity and the correct next tool. Returns ranked candidates when the input is ambiguous.
Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 1 h ago | Passed | 200 | 373 ms |
| 12 h ago | Passed | 200 | 326 ms |
| 21 h ago | Passed | 200 | 372 ms |
| 30 h ago | Passed | 200 | 297 ms |
| 40 h ago | Passed | 200 | 324 ms |
Show 8 older checks
| 2 days ago | Passed | 200 | 341 ms |
| 3 days ago | Passed | 200 | 449 ms |
| 3 days ago | Passed | 200 | 344 ms |
| 3 days ago | Passed | 200 | 397 ms |
| 4 days ago | Passed | 200 | 306 ms |
| 4 days ago | Passed | 200 | 349 ms |
| 4 days ago | Passed | 200 | 329 ms |
| 5 days ago | Passed | 200 | 371 ms |