ca.veilpoint/opportunity-exchange

MCPcommunitylive
v1.0.0ca.veilpointUnknownUpdated 1mo ago

Keyless Saskatchewan labour-market data: measured wages and rents, roles, jobs, outcomes, pathways.

Endpoint healthlive
checked 1 day ago · 368ms
100% of the last 4 checks reached this endpoint
Works in
ClaudeCursorCopilotChatGPTGemini

Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
1mo agoLast update
Package
Authorca.veilpoint
LicenseUnknown
Version1.0.0
Sourcemcp-registry
Trust Status
B
60/100Good
Listed in Forge index+10/10
Publisher identity verified+0/30
Publisher: this listing has no repository on file, so `forge publish` cannot verify ownership automatically. Use "Claim this listing" above — Forge reviews these by hand.
Domain verification+0/10
Not currently available for this listing type — the domain-verification check only runs for npm-backed packages today, so this row cannot be earned here yet regardless of what's hosted at the domain.
Prompt-injection scan · clean+30/30
Obfuscation / exfil scan · clean+20/20
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain
Provenance
DependenciesNot audited
Tool surface72 tools · none privileged
Security scan✓ Cleanvlive · 1d agoHow well does this scan work?
EvalsNone
IndexedJul 27, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

72 tools · none privileged
Observed live from the vendor's endpoint1d ago

Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.

  • https://veilpoint.ca/mcp72 tools · 368ms
investigate_economic_questionTurn 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 reasoning chain; synthesize…

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 reasoning chain; synthesize…

ParameterTypeDescription
question*stringThe economic question. Do not include personal or confidential information.
entitiesarrayOptional exact entity hints. Use these when a place, business, occupation, sector, signal, or source is not stated unambiguously in the question.
minimumConfidencestring
depthintegerMaximum graph traversal depth; default 2.
maxEvidenceCallsintegerMaximum governed evidence calls executed; default 6.
inspect_knowledge_frontierWhat 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 not a work queue — i…

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 not a work queue — i…

ParameterTypeDescription
subjectKind*stringThe kind of subject. Kinds any registered inquiry type asks about are listed in the response under admissibility.inquirableSubjectKinds.
subjectId*stringThe canonical OEX identifier for the subject, such as a municipality slug.
resolve_entitiesResolve 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.

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.

ParameterTypeDescription
query*stringName, alternate title, slug, or official identifier.
typestringOptional entity-type constraint.
limitintegerMaximum matches; default 8.
get_entity_contextFetch 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.

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.

ParameterTypeDescription
type*string
id*stringExact canonical id, local slug, or name from resolve_entities.
query_knowledge_graphQuery 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 metric names. Missin…

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 metric names. Missin…

ParameterTypeDescription
entitystringExact name, slug, graph id, NOC code, SGC code, source id, or provider id.
geographystringOptional exact municipality name, slug, or SGC code for geography-scoped facts.
typestringOptional entity-type constraint.
bundlestringBounded metric preset. municipal-economic-profile-v1 requires one municipality entity.
metricsarrayFact metrics, e.g. population.
predicatesarrayRelationship predicates, e.g. classified_as or serves.
truthStatesarray
minimumConfidencestring
referencePeriodStartstringInclusive ISO-8601 lower bound for fact reference periods.
referencePeriodEndstringInclusive ISO-8601 upper bound for fact reference periods.
limitintegerMaximum facts, relationships, or listed entities; default 25.
depthintegerHops to expand outward from entity; default 1. Above 1 adds an expansion block of nodes and edges annotated with the hop that reached them, so a containment ch…
maxNodesintegerCeiling on entities across the whole expansion; default 200. Distinct from limit, which bounds one level — without it a depth of 2 from a municipality would pu…
get_knowledge_graph_statusReturn 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.

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.

No input schema was published for this tool.

compare_municipalitiesCompare 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.

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.

ParameterTypeDescription
entities*arrayMunicipality names, local slugs, or SGC codes.
bundlestringComparison metric preset; defaults to municipal-economic-profile-v1.
metricsarrayOptional additional fact metrics.
list_rolesThe Saskatchewan occupation catalogue: id, title, NOC code, sector, hourly wage, demand score. Start here to find role ids.

The Saskatchewan occupation catalogue: id, title, NOC code, sector, hourly wage, demand score. Start here to find role ids.

No input schema was published for this tool.

get_roleOne occupation in full: market figures, entry requirements, working conditions, training programs, and per-community outcomes (net and discretionary monthly income at the median wage).

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).

ParameterTypeDescription
id*stringRole id from list_roles.
compare_rolesCompare two or three roles using the shared occupation fields: wages, demand, outlook, entry requirements and work profile.

Compare two or three roles using the shared occupation fields: wages, demand, outlook, entry requirements and work profile.

ParameterTypeDescription
ids*arrayTwo or three role ids from list_roles.
search_hiring_activitySource-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. Check observationDate…

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. Check observationDate…

ParameterTypeDescription
qstringFree-text search over title, employer and description.
regionstringExact region name.
municipalitystringExact municipality name.
occupationstringRole id from the occupation catalogue.
sectorstringSector id from the sector list.
typestringEmployment type.
minWagenumberMinimum hourly wage, CAD.
postedWithinDaysintegerOnly postings newer than this many days.
limitintegerPage size, 1-200 (default 50).
offsetintegerPagination offset (default 0).
compare_outcomesThe 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.

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.

ParameterTypeDescription
occupationstringRole id from list_roles.
wagenumberExplicit hourly wage, CAD.
rank_communitiesRank Saskatchewan communities by monthly discretionary income for exactly one role or explicit hourly wage.

Rank Saskatchewan communities by monthly discretionary income for exactly one role or explicit hourly wage.

ParameterTypeDescription
occupationstringRole id whose median wage should be modelled.
wagenumberExplicit positive hourly wage in CAD.
limitintegerNumber of ranked communities, 1-20 (default 10).
list_sectorsSector rollups with provider-qualified hiring-record counts, median wage and occupation demand. Candidate profiles are excluded. Read meta.evidence before interpreting a count.

Sector rollups with provider-qualified hiring-record counts, median wage and occupation demand. Candidate profiles are excluded. Read meta.evidence before interpreting a count.

No input schema was published for this tool.

get_sectorOne sector: its occupations, provider-qualified postings by community, and notable employers.

One sector: its occupations, provider-qualified postings by community, and notable employers.

ParameterTypeDescription
id*stringSector id from list_sectors.
summarize_credential_demandAggregate hiring records associated with occupational credential requirements. Candidate profiles and holder counts are excluded; the result describes demand evidence, not a proven shortage.

Aggregate hiring records associated with occupational credential requirements. Candidate profiles and holder counts are excluded; the result describes demand evidence, not a proven shortage.

No input schema was published for this tool.

search_employersSearch the public business directory by name, municipality, sector group and observed hiring flag. Preview providers return modelled activity scenarios, not business claims.

Search the public business directory by name, municipality, sector group and observed hiring flag. Preview providers return modelled activity scenarios, not business claims.

ParameterTypeDescription
qstringCase-insensitive text search over employer and sector names.
municipalitystringMunicipality id from /api/v1/municipalities.
sectorstringSector-group id from /api/v1/sectors.
hiringbooleantrue to filter on the disclosed hiring flag; preview providers expose modelled scenarios.
limitintegerResult limit, 1-100 (default 25).
get_trade_overviewSaskatchewan merchandise exports by NAPCS section from Statistics Canada. Station-level CGC rows are excluded pending commercial redistribution permission.

Saskatchewan merchandise exports by NAPCS section from Statistics Canada. Station-level CGC rows are excluded pending commercial redistribution permission.

No input schema was published for this tool.

get_real_estateHousing 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.

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.

ParameterTypeDescription
municipalityIdstringMunicipality id (e.g. saskatoon). Omit for all communities.
search_licensed_businessesNamed 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 current beyond that…

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 current beyond that…

ParameterTypeDescription
municipalityId*stringMunicipality id. Only communities with a reviewed snapshot resolve.
subsectorstringThree-digit NAICS subsector code to filter by, e.g. 484.
qstringBusiness-name contains match.
limitnumberRows to return, 1-200 (default 50).
offsetnumberRows to skip for paging.
get_wagesMeasured 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, province for one geograph…

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, province for one geograph…

ParameterTypeDescription
nocstringFive-digit NOC 2021 unit-group code from list_noc_groups.
provincestringSGC 2021 code, postal abbreviation (e.g. SK), or "canada".
get_rentsMeasured 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 one centre, neither…

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 one centre, neither…

ParameterTypeDescription
provincestringSGC 2021 code or postal abbreviation (e.g. SK).
centrestringCMHC/StatCan geography code (cmhcCode) from a previous get_rents call.
list_noc_groupsThe 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.

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.

No input schema was published for this tool.

evaluate_pathwaysThe 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 panel used by REST a…

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 panel used by REST a…

ParameterTypeDescription
credentialsarrayCredential names held and current, e.g. "WHMIS", "Class 5 Licence".
educationLevelstringHighest education level.
experienceAreasarrayCapability areas with real working experience.
licenceClassstringHighest Saskatchewan driver licence currently held.
currentMunicipalityIdstringCurrent community, required when maximumRelocationKm is supplied.
allowedMunicipalityIdsarrayOptional destination allowlist.
maximumRelocationKmnumberMaximum move from currentMunicipalityId; zero means local only.
housingBudgetMonthlynumberMaximum monthly rent for the requested household.
bedroomsRequiredstringRental unit size required by the household.
incomeEarnersintegerIncome earners sharing housing and utilities.
householdSizeintegerPeople represented by the regional Market Basket Measure basket.
vehicleAvailablebooleanWhether the scenario includes a vehicle commute.
savingsDollarsnumberCash available for training before funding.
maximumRetrainingWeeksnumberMaximum acceptable retraining time; zero means direct entry.
targetOccupationIdstringRole id from list_roles — evaluates that target in depth.
limitnumberRanked list size (default 8, max 20).
inspect_procurement_activityInspect 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 supplier fit, or ex…

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 supplier fit, or ex…

ParameterTypeDescription
buyerIdstringExact source-scoped organization id from resolve_entities.
categoryCodestringExact eight-digit UNSPSC code from resolve_entities.
noticeIdstringExact source-stable procurement-notice id.
includeHistorybooleanInclude closed historical demand observations; default true.
limitintegerMaximum observations returned; default 100.
assess_procurement_relevanceCompare 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 likelihood of award,…

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 likelihood of award,…

ParameterTypeDescription
businessId*stringExact graph business id, e.g. business:<canonical-id>, from resolve_entities.
includeHistorybooleanInclude closed notices as historical demand evidence; default false.
limitintegerMaximum overlapping notices returned; default 50.
assess_workforce_demandReport 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. Advertised record coun…

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. Advertised record coun…

ParameterTypeDescription
limitintegerMaximum rows per view; default 50.
find_potential_suppliersFind 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 matched on industry…

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 matched on industry…

ParameterTypeDescription
businessId*stringExact graph business id, e.g. business:<canonical-id>, from resolve_entities.
find_potential_customersFind 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 on industry. Withhel…

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 on industry. Withhel…

ParameterTypeDescription
businessId*stringExact graph business id, e.g. business:<canonical-id>, from resolve_entities.
list_economic_signalsList 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.

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.

ParameterTypeDescription
limitnumberPage size.
offsetnumberZero-based page offset.
get_economic_signalGet one governed economic signal by its source-stable id, including provenance, lifecycle state, mappings and uncertainty boundaries.

Get one governed economic signal by its source-stable id, including provenance, lifecycle state, mappings and uncertainty boundaries.

ParameterTypeDescription
id*stringSignal id from list_economic_signals.
get_emerging_signalsBackward-compatible alias for list_economic_signals.

Backward-compatible alias for list_economic_signals.

ParameterTypeDescription
limitnumber
offsetnumber
get_data_sourcesRead the governed upstream source registry: publisher datasets, stable source ids, licence decisions, approved and excluded uses, checked releases, materialization bindings and refresh controls.

Read the governed upstream source registry: publisher datasets, stable source ids, licence decisions, approved and excluded uses, checked releases, materialization bindings and refresh controls.

No input schema was published for this tool.

get_data_providersRead runtime provider contracts grouped as evidence, preview, planned, first-party and derived. Only the evidence group is eligible to support factual claims.

Read runtime provider contracts grouped as evidence, preview, planned, first-party and derived. Only the evidence group is eligible to support factual claims.

No input schema was published for this tool.

get_source_provenanceResolve 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 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.

ParameterTypeDescription
idstringOptional registered source id from get_data_sources or provider id from get_data_providers.
resolve_citationResolve 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 relationship.

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 relationship.

ParameterTypeDescription
citation*stringcitation.id, citation resolver URL, or versioned citation token.
get_economy_overviewModeled 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, the official 2017–2…

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, the official 2017–2…

No input schema was published for this tool.

get_municipality_evidence_coverageEvidence 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.

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.

No input schema was published for this tool.

get_community_economyOne 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 from get_economy_ov…

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 from get_economy_ov…

ParameterTypeDescription
code*string7-digit 2021 SGC census subdivision code.
resolve_entityResolve user language or an official code to the canonical OEX identity and the correct next tool. Returns ranked candidates when the input is ambiguous.

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.

ParameterTypeDescription
query*stringName, alternate title, slug, or official identifier.
typestringOptional entity-type constraint.
limitintegerMaximum matches; default 8.
get_entityRetrieve one governed entity record with its evidence, provenance, canonical links, and permitted interpretation.

Retrieve one governed entity record with its evidence, provenance, canonical links, and permitted interpretation.

ParameterTypeDescription
type*string
id*stringExact canonical id, local slug, or name from resolve_entities.
search_entitiesSearch across supported OEX entity classes using names, aliases, slugs, and official identifiers.

Search across supported OEX entity classes using names, aliases, slugs, and official identifiers.

ParameterTypeDescription
query*stringName, alternate title, slug, or official identifier.
typestringOptional entity-type constraint.
limitintegerMaximum matches; default 8.
search_businessesSearch governed municipal licensed-business snapshots without inferring operating health, employment, ownership, or hiring.

Search governed municipal licensed-business snapshots without inferring operating health, employment, ownership, or hiring.

ParameterTypeDescription
municipalityId*stringMunicipality id. Only communities with a reviewed snapshot resolve.
subsectorstringThree-digit NAICS subsector code to filter by, e.g. 484.
qstringBusiness-name contains match.
limitnumberRows to return, 1-200 (default 50).
offsetnumberRows to skip for paging.
get_business_evidenceRetrieve the governed context and evidence boundary for one business entity. Licence presence establishes snapshot presence only.

Retrieve the governed context and evidence boundary for one business entity. Licence presence establishes snapshot presence only.

ParameterTypeDescription
id*stringCanonical business id from search_businesses or a graph query.
get_community_profileRetrieve one municipality as a governed economic profile with canonical identity, available evidence, links, and qualifications.

Retrieve one municipality as a governed economic profile with canonical identity, available evidence, links, and qualifications.

ParameterTypeDescription
id*stringMunicipality name, slug, or SGC code.
compare_communitiesCompare 2–10 Saskatchewan communities and return explicit missing-data and comparability results for every requested metric.

Compare 2–10 Saskatchewan communities and return explicit missing-data and comparability results for every requested metric.

ParameterTypeDescription
entities*arrayMunicipality names, local slugs, or SGC codes.
bundlestringComparison metric preset; defaults to municipal-economic-profile-v1.
metricsarrayOptional additional fact metrics.
get_labour_demandRetrieve governed Saskatchewan labour-demand evidence while keeping advertised openings, statistical vacancies, live listings, and modelled sector allocations distinct.

Retrieve governed Saskatchewan labour-demand evidence while keeping advertised openings, statistical vacancies, live listings, and modelled sector allocations distinct.

No input schema was published for this tool.

get_wage_evidenceRetrieve wage evidence for an occupation and geography with units, period, source, confidence, and comparability qualifications.

Retrieve wage evidence for an occupation and geography with units, period, source, confidence, and comparability qualifications.

ParameterTypeDescription
nocstringFive-digit NOC 2021 unit-group code from list_noc_groups.
provincestringSGC 2021 code, postal abbreviation (e.g. SK), or "canada".
traverse_relationshipsTraverse bounded, typed economic relationships from a resolved entity without treating missing edges as false.

Traverse bounded, typed economic relationships from a resolved entity without treating missing edges as false.

ParameterTypeDescription
entitystringExact name, slug, graph id, NOC code, SGC code, source id, or provider id.
geographystringOptional exact municipality name, slug, or SGC code for geography-scoped facts.
typestringOptional entity-type constraint.
bundlestringBounded metric preset. municipal-economic-profile-v1 requires one municipality entity.
metricsarrayFact metrics, e.g. population.
predicatesarrayRelationship predicates, e.g. classified_as or serves.
truthStatesarray
minimumConfidencestring
referencePeriodStartstringInclusive ISO-8601 lower bound for fact reference periods.
referencePeriodEndstringInclusive ISO-8601 upper bound for fact reference periods.
limitintegerMaximum facts, relationships, or listed entities; default 25.
depthintegerHops to expand outward from entity; default 1. Above 1 adds an expansion block of nodes and edges annotated with the hop that reached them, so a containment ch…
maxNodesintegerCeiling on entities across the whole expansion; default 200. Distinct from limit, which bounds one level — without it a depth of 2 from a municipality would pu…
find_connected_entitiesFind entities connected through governed graph predicates, with source, truth state, confidence, and hop annotations.

Find entities connected through governed graph predicates, with source, truth state, confidence, and hop annotations.

ParameterTypeDescription
entitystringExact name, slug, graph id, NOC code, SGC code, source id, or provider id.
geographystringOptional exact municipality name, slug, or SGC code for geography-scoped facts.
typestringOptional entity-type constraint.
bundlestringBounded metric preset. municipal-economic-profile-v1 requires one municipality entity.
metricsarrayFact metrics, e.g. population.
predicatesarrayRelationship predicates, e.g. classified_as or serves.
truthStatesarray
minimumConfidencestring
referencePeriodStartstringInclusive ISO-8601 lower bound for fact reference periods.
referencePeriodEndstringInclusive ISO-8601 upper bound for fact reference periods.
limitintegerMaximum facts, relationships, or listed entities; default 25.
depthintegerHops to expand outward from entity; default 1. Above 1 adds an expansion block of nodes and edges annotated with the hop that reached them, so a containment ch…
maxNodesintegerCeiling on entities across the whole expansion; default 200. Distinct from limit, which bounds one level — without it a depth of 2 from a municipality would pu…
get_evidenceRetrieve a governed upstream source or runtime provider and its lineage, licence boundary, releases, and serving status.

Retrieve a governed upstream source or runtime provider and its lineage, licence boundary, releases, and serving status.

ParameterTypeDescription
idstringOptional registered source id from get_data_sources or provider id from get_data_providers.
explain_confidenceExplain the OEX A–D record-confidence vocabulary, its weakest-input rule for derived values, and the interpretation contract.

Explain the OEX A–D record-confidence vocabulary, its weakest-input rule for derived values, and the interpretation contract.

ParameterTypeDescription
confidencestring
explain_truth_stateExplain what an OEX truth state permits an agent to claim and return the complete interpretation contract.

Explain what an OEX truth state permits an agent to claim and return the complete interpretation contract.

ParameterTypeDescription
truthStatestring
check_comparabilityCheck whether requested community observations share compatible concepts, units, geographic boundaries, and reference periods; return explicit reasons where they do not.

Check whether requested community observations share compatible concepts, units, geographic boundaries, and reference periods; return explicit reasons where they do not.

ParameterTypeDescription
entities*arrayMunicipality names, local slugs, or SGC codes.
bundlestringComparison metric preset; defaults to municipal-economic-profile-v1.
metricsarrayOptional additional fact metrics.
check_business_healthRun Business Health on a real business from details you supply — the free public check. Use this when someone asks about *their own* business: it needs no account, stores nothing, and creates no record. Supply the website to unlock the nine checks that read the site. OEX asserts nothing about the b…

Run Business Health on a real business from details you supply — the free public check. Use this when someone asks about *their own* business: it needs no account, stores nothing, and creates no record. Supply the website to unlock the nine checks that read the site. OEX asserts nothing about the b…

ParameterTypeDescription
name*stringThe business name.
websitestringDomain or URL. Worth supplying — nine checks depend on it.
addressstring
categorystringWhat the business does.
descriptionstringHow the business describes itself.
phonestring
explain_business_claimWhat claiming a business on OEX involves, and how to start. Call this after check_business_health when the person wants to act on the findings inside OEX rather than only on their own website — claiming is what unlocks correcting the record, granting consent and verified rechecks. Read-only: it exp…

What claiming a business on OEX involves, and how to start. Call this after check_business_health when the person wants to act on the findings inside OEX rather than only on their own website — claiming is what unlocks correcting the record, granting consent and verified rechecks. Read-only: it exp…

ParameterTypeDescription
businessNamestringOptional — the business being asked about, echoed back for context.
list_health_capabilitiesWhat Business Health can actually inspect, fix, generate, verify and escalate — every check, what evidence it reads, what it needs before it will run, and what it offers as a fix. Read this before promising a business anything: it is the authoritative list of what OEX can do about a finding, and it…

What Business Health can actually inspect, fix, generate, verify and escalate — every check, what evidence it reads, what it needs before it will run, and what it offers as a fix. Read this before promising a business anything: it is the authoritative list of what OEX can do about a finding, and it…

No input schema was published for this tool.

create_sandbox_businessStart here to try Business Health. Creates a synthetic business you may then operate, and returns its id. Sandbox businesses never appear in OEX search, the directory or any public count — they exist so the workflow can be walked end to end. Give it whatever characteristics the scenario you want to…

Start here to try Business Health. Creates a synthetic business you may then operate, and returns its id. Sandbox businesses never appear in OEX search, the directory or any public count — they exist so the workflow can be walked end to end. Give it whatever characteristics the scenario you want to…

ParameterTypeDescription
name*stringTrading name for the synthetic business.
addressstringOptional civic address.
categorystringOptional industry or category.
descriptionstringOptional description of what it does.
phonestringOptional phone number.
list_sandbox_businessesList the sandbox businesses that exist, so you can resume working on one.

List the sandbox businesses that exist, so you can resume working on one.

No input schema was published for this tool.

get_business_healthThe full health report for a sandbox business: the headline, findings worth attention with an action each, invitations, what passed, and what could not be evaluated. The headline is categorical — OEX publishes no numeric health score, in any cycle.

The full health report for a sandbox business: the headline, findings worth attention with an action each, invitations, what passed, and what could not be evaluated. The headline is categorical — OEX publishes no numeric health score, in any cycle.

ParameterTypeDescription
businessId*string
get_business_health_markdownThe same report as markdown — the form an owner would hand to whoever maintains their website.

The same report as markdown — the form an owner would hand to whoever maintains their website.

ParameterTypeDescription
businessId*string
update_business_recordCorrect or complete the business's own record — the fix for most findings about missing or thin information. Supply only the fields you are changing; an omitted field is left alone, not cleared.

Correct or complete the business's own record — the fix for most findings about missing or thin information. Supply only the fields you are changing; an omitted field is left alone, not cleared.

ParameterTypeDescription
businessId*string
namestring
descriptionstring
addressstring
categorystring
phonestring
grant_business_consentGrant a purpose-scoped consent on behalf of the sandbox business. This is what an invitation in the report is asking for. The classes are separate on purpose: granting one never widens another.

Grant a purpose-scoped consent on behalf of the sandbox business. This is what an invitation in the report is asking for. The classes are separate on purpose: granting one never widens another.

ParameterTypeDescription
businessId*string
consentClass*string
set_website_domainTell OEX the business's website so it can be inspected. Supplying a domain permits inspection; it does not assert that the business owns or controls it, and OEX will not publish the domain as the business's own on this basis alone.

Tell OEX the business's website so it can be inspected. Supplying a domain permits inspection; it does not assert that the business owns or controls it, and OEX will not publish the domain as the business's own on this basis alone.

ParameterTypeDescription
businessId*string
domain*string
get_generated_assetGet an asset OEX generates from the business's own record: 'local-business-jsonld' or 'corrected-info-block'.

Get an asset OEX generates from the business's own record: 'local-business-jsonld' or 'corrected-info-block'.

ParameterTypeDescription
businessId*string
assetId*string
start_health_actionRecord that work on a finding has begun — the owner opening the action. Moves the finding's action state, which is what makes its history readable later.

Record that work on a finding has begun — the owner opening the action. Moves the finding's action state, which is what makes its history readable later.

ParameterTypeDescription
businessId*string
checkId*string
report_health_action_completeRecord that the owner says a finding is fixed. This is their claim, not OEX's: nothing renders as resolved until a recheck runs and the check actually passes.

Record that the owner says a finding is fixed. This is their claim, not OEX's: nothing renders as resolved until a recheck runs and the check actually passes.

ParameterTypeDescription
businessId*string
checkId*string
recheck_business_healthAsk OEX to look again — what a business does after fixing something. Inspects the website if one is supplied. Rate-limited, and a check that could not run is reported as unable-to-verify rather than as fixed.

Ask OEX to look again — what a business does after fixing something. Inspects the website if one is supplied. Rate-limited, and a check that could not run is reported as unable-to-verify rather than as fixed.

ParameterTypeDescription
businessId*string
checkIdstringOptional: recheck one finding rather than all.
get_health_action_historyThe event history for a sandbox business: what was detected, what the owner reported, and what a recheck verified — with the timestamps that make the sequence auditable.

The event history for a sandbox business: what was detected, what the owner reported, and what a recheck verified — with the timestamps that make the sequence auditable.

ParameterTypeDescription
businessId*string
checkIdstring
check_opportunity_readinessFor each public procurement notice whose requested categories overlap what this business has published, what about the business's OEX representation is in order and what is not. Every gap names the Business Health check that owns it, so the fix is the same one the health report already offers. Esta…

For each public procurement notice whose requested categories overlap what this business has published, what about the business's OEX representation is in order and what is not. Every gap names the Business Health check that owns it, so the fix is the same one the health report already offers. Esta…

ParameterTypeDescription
businessId*string
limitnumberOptional, default 5. How many overlapping notices to assess.
run_business_studyRun the Guided Business Study on a sandbox business: Business Health plus the three analytical instruments — Negative Space (what would be expected here and is not observed), Boundary Fracture (values that exist on one of the business’s own surfaces and never crossed to the other), and Strategic No…

Run the Guided Business Study on a sandbox business: Business Health plus the three analytical instruments — Negative Space (what would be expected here and is not observed), Boundary Fracture (values that exist on one of the business’s own surfaces and never crossed to the other), and Strategic No…

ParameterTypeDescription
businessId*string
objectivestringOptional: what the business is trying to accomplish, in its own words. Carried into the study.
inspectWebsitebooleanOptional, default false. Inspect the website on record before running, so the stages that compare the site against the record can actually look. Costs one boun…
run_business_study_markdownThe same Guided Business Study as a markdown document — the form a study is handed over in, with each stage’s findings beside its own evidence table.

The same Guided Business Study as a markdown document — the form a study is handed over in, with each stage’s findings beside its own evidence table.

ParameterTypeDescription
businessId*string
objectivestringOptional: the business’s stated objective.
inspectWebsitebooleanOptional, default false. Inspect the website on record before running, so the stages comparing the site against the record can look. Costs one bounded fetch.

72 of 72 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Keyless Saskatchewan labour-market data: measured wages and rents, roles, jobs, outcomes, pathways.

Keywords
mcp
Alternatives
Comparing tool surfaces…

No dependency coverage

This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.