{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pjv95uv4zwbc","handle":"opportunity-exchange","url":"https://wellknown.network/agents/opportunity-exchange","links":{"self":"https://wellknown.network/agents/opportunity-exchange/record.json","html":"https://wellknown.network/agents/opportunity-exchange","markdown":"https://wellknown.network/agents/opportunity-exchange/record.md","api":"https://wellknown.network/api/v1/agents/opportunity-exchange","status":"https://wellknown.network/api/v1/agents/opportunity-exchange/status","claim":"https://wellknown.network/agents/opportunity-exchange/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/opportunity-exchange/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:veilpoint.ca:server:opportunity-exchange","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"opportunity-exchange","summary":"Keyless Saskatchewan labour-market data: measured wages and rents, roles, jobs, outcomes, pathways.","description":"Keyless Saskatchewan labour-market data: measured wages and rents, roles, jobs, outcomes, pathways.","publisher":{"name":"ca.veilpoint","url":null},"homepage":"https://veilpoint.ca/agents","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://veilpoint.ca/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-27T03:10:22.180081Z","publishedAt":"2026-07-27T03:10:22.180081Z","registryName":"ca.veilpoint/opportunity-exchange"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":1,"provenance":"derived"},{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"security.secrets","name":"Secrets Management","confidence":0.569,"provenance":"derived"},{"slug":"research.web","name":"Deep Web Research","confidence":0.569,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.54,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.54,"provenance":"derived"}],"categories":["content","data","dev","finance","knowledge","productivity","research","security"]},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-09-05T19:26:56.982Z","lastProbedAt":"2026-09-05T19:26:56.982Z","statusComputedAt":"2026-09-05T19:28:26.886Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":171},"latestObservations":[{"at":"2026-09-05T19:26:56.982Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":171,"error":null,"detail":{"tools":[{"name":"investigate_economic_question","description":"Turn a natural-language economic question into an inspectable deterministic plan, resolve governed entities, execute a bounded set of existing OEX graph/data pr"},{"name":"resolve_entities","description":"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"},{"name":"get_entity_context","description":"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, mun"},{"name":"query_knowledge_graph","description":"Query the materialized semantic graph without downloading whole datasets. Resolve an entity name/code and optional municipality geography, then return typed fac"},{"name":"get_knowledge_graph_status","description":"Return the current database graph inventory by entity type, predicate and metric plus deterministic core reconciliation. ok=true means every governed core entit"},{"name":"compare_municipalities","description":"Compare 2–10 exact Saskatchewan municipalities using the newest governed fact for each standard economic metric. A metric is comparable only when all resolved m"},{"name":"list_roles","description":"The Saskatchewan occupation catalogue: id, title, NOC code, sector, hourly wage, demand score. Start here to find role ids."},{"name":"get_role","description":"One occupation in full: market figures, entry requirements, working conditions, training programs, and per-community outcomes (net and discretionary monthly inc"},{"name":"compare_roles","description":"Compare two or three roles using the shared occupation fields: wages, demand, outlook, entry requirements and work profile."},{"name":"search_hiring_activity","description":"Source-attributed hiring-activity evidence, newest first and filterable by occupation, sector and geography. data.recordPurpose and each row recordPurpose are h"},{"name":"compare_outcomes","description":"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 oc"},{"name":"rank_communities","description":"Rank Saskatchewan communities by monthly discretionary income for exactly one role or explicit hourly wage."},{"name":"list_sectors","description":"Sector rollups with provider-qualified hiring-record counts, median wage and occupation demand. Candidate profiles are excluded. Read meta.evidence before inter"},{"name":"get_sector","description":"One sector: its occupations, provider-qualified postings by community, and notable employers."},{"name":"summarize_credential_demand","description":"Aggregate hiring records associated with occupational credential requirements. Candidate profiles and holder counts are excluded; the result describes demand ev"},{"name":"search_employers","description":"Search the public business directory by name, municipality, sector group and observed hiring flag. Preview providers return modelled activity scenarios, not bus"},{"name":"get_trade_overview","description":"Saskatchewan merchandise exports by NAPCS section from Statistics Canada. Station-level CGC rows are excluded pending commercial redistribution permission."},{"name":"get_real_estate","description":"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 "},{"name":"search_licensed_businesses","description":"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 — u"},{"name":"get_wages","description":"Measured wages and vacancies (Statistics Canada, real data): LFS median/average hourly wages by occupation group × province, and JVWS job vacancies with average"},{"name":"get_rents","description":"Measured rental markets (CMHC Rental Market Survey via Statistics Canada, real data): average rents by unit type (bachelor to 3+ bedroom) and rental vacancy rat"},{"name":"list_noc_groups","description":"The complete NOC 2021 occupational classification: all 516 unit groups with bilingual titles, TEER tiers, and platform coverage flags. Use to map any Canadian o"},{"name":"evaluate_pathways","description":"The decision tool: evaluate realistic routes into work for a person's stated credentials, education, experience, driver licence, relocation boundary, housing an"},{"name":"inspect_procurement_activity","description":"Inspect official Saskatchewan CanadaBuys procurement observations by buyer, notice, or UNSPSC product/service category. Returns current and historical lifecycle"},{"name":"assess_procurement_relevance","description":"Compare the supply categories a business has published against the UNSPSC categories official buyers have requested. Returns category compatibility only, classe"},{"name":"assess_workforce_demand","description":"Report occupational demand, credential demand, training availability and a training-route constraint indicator separately. It does not combine them into a short"},{"name":"find_potential_suppliers","description":"Find businesses whose published supply categories match the categories a business has published as things it buys. Returns potential_compatibility only: no rela"},{"name":"find_potential_customers","description":"Find businesses whose published purchasing categories match the categories a business has published as things it can supply. Returns potential_compatibility onl"},{"name":"list_economic_signals","description":"List governed Saskatchewan economic signals from official structured sources. Each row preserves lifecycle state and uncertainty; notices do not prove an award,"},{"name":"get_economic_signal","description":"Get one governed economic signal by its source-stable id, including provenance, lifecycle state, mappings and uncertainty boundaries."},{"name":"get_emerging_signals","description":"Backward-compatible alias for list_economic_signals."},{"name":"get_data_sources","description":"Read the governed upstream source registry: publisher datasets, stable source ids, licence decisions, approved and excluded uses, checked releases, materializat"},{"name":"get_data_providers","description":"Read runtime provider contracts grouped as evidence, preview, planned, first-party and derived. Only the evidence group is eligible to support factual claims."},{"name":"get_source_provenance","description":"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 upstr"},{"name":"resolve_citation","description":"Resolve a public graph assertion citation to its canonical entity or entities, exact assertion, source, observation time, truth state, confidence, publication s"},{"name":"get_economy_overview","description":"Modeled community GDP for Saskatchewan: official provincial sector GDP (36-10-0711-01, 2022 current dollars) allocated across all 951 census subdivisions by mea"},{"name":"get_municipality_evidence_coverage","description":"Evidence availability and confidence-gate work queue for all 17 Saskatchewan cities and 149 towns. Returns current Tier A–D counts, evidence-domain coverage, pu"},{"name":"get_community_economy","description":"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 sec"},{"name":"resolve_entity","description":"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."},{"name":"get_entity","description":"Retrieve one governed entity record with its evidence, provenance, canonical links, and permitted interpretation."},{"name":"search_entities","description":"Search across supported OEX entity classes using names, aliases, slugs, and official identifiers."},{"name":"search_businesses","description":"Search governed municipal licensed-business snapshots without inferring operating health, employment, ownership, or hiring."},{"name":"get_business_evidence","description":"Retrieve the governed context and evidence boundary for one business entity. Licence presence establishes snapshot presence only."},{"name":"get_community_profile","description":"Retrieve one municipality as a governed economic profile with canonical identity, available evidence, links, and qualifications."},{"name":"compare_communities","description":"Compare 2–10 Saskatchewan communities and return explicit missing-data and comparability results for every requested metric."},{"name":"get_labour_demand","description":"Retrieve governed Saskatchewan labour-demand evidence while keeping advertised openings, statistical vacancies, live listings, and modelled sector allocations d"},{"name":"get_wage_evidence","description":"Retrieve wage evidence for an occupation and geography with units, period, source, confidence, and comparability qualifications."},{"name":"traverse_relationships","description":"Traverse bounded, typed economic relationships from a resolved entity without treating missing edges as false."},{"name":"find_connected_entities","description":"Find entities connected through governed graph predicates, with source, truth state, confidence, and hop annotations."},{"name":"get_evidence","description":"Retrieve a governed upstream source or runtime provider and its lineage, licence boundary, releases, and serving status."},{"name":"explain_confidence","description":"Explain the OEX A–D record-confidence vocabulary, its weakest-input rule for derived values, and the interpretation contract."},{"name":"explain_truth_state","description":"Explain what an OEX truth state permits an agent to claim and return the complete interpretation contract."},{"name":"check_comparability","description":"Check whether requested community observations share compatible concepts, units, geographic boundaries, and reference periods; return explicit reasons where the"},{"name":"check_business_health","description":"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 accou"},{"name":"explain_business_claim","description":"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"},{"name":"list_health_capabilities","description":"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 "},{"name":"create_sandbox_business","description":"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 dir"},{"name":"list_sandbox_businesses","description":"List the sandbox businesses that exist, so you can resume working on one."},{"name":"get_business_health","description":"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 evalu"},{"name":"get_business_health_markdown","description":"The same report as markdown — the form an owner would hand to whoever maintains their website."},{"name":"update_business_record","description":"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"},{"name":"grant_business_consent","description":"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: g"},{"name":"set_website_domain","description":"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"},{"name":"get_generated_asset","description":"Get an asset OEX generates from the business's own record: 'local-business-jsonld' or 'corrected-info-block'."},{"name":"start_health_action","description":"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."},{"name":"report_health_action_complete","description":"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."},{"name":"recheck_business_health","description":"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 re"},{"name":"get_health_action_history","description":"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 a"},{"name":"check_opportunity_readiness","description":"For each public procurement notice whose requested categories overlap what this business has published, what about the business's OEX representation is in order"},{"name":"run_business_study","description":"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 "},{"name":"run_business_study_markdown","description":"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."}],"toolCount":71,"serverName":"opportunity-exchange","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"investigate_economic_question","description":"Turn a natural-language economic question into an inspectable deterministic plan, resolve governed entities, execute a bounded set of existing OEX graph/data pr"},{"name":"resolve_entities","description":"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"},{"name":"get_entity_context","description":"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, mun"},{"name":"query_knowledge_graph","description":"Query the materialized semantic graph without downloading whole datasets. Resolve an entity name/code and optional municipality geography, then return typed fac"},{"name":"get_knowledge_graph_status","description":"Return the current database graph inventory by entity type, predicate and metric plus deterministic core reconciliation. ok=true means every governed core entit"},{"name":"compare_municipalities","description":"Compare 2–10 exact Saskatchewan municipalities using the newest governed fact for each standard economic metric. A metric is comparable only when all resolved m"},{"name":"list_roles","description":"The Saskatchewan occupation catalogue: id, title, NOC code, sector, hourly wage, demand score. Start here to find role ids."},{"name":"get_role","description":"One occupation in full: market figures, entry requirements, working conditions, training programs, and per-community outcomes (net and discretionary monthly inc"},{"name":"compare_roles","description":"Compare two or three roles using the shared occupation fields: wages, demand, outlook, entry requirements and work profile."},{"name":"search_hiring_activity","description":"Source-attributed hiring-activity evidence, newest first and filterable by occupation, sector and geography. data.recordPurpose and each row recordPurpose are h"},{"name":"compare_outcomes","description":"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 oc"},{"name":"rank_communities","description":"Rank Saskatchewan communities by monthly discretionary income for exactly one role or explicit hourly wage."},{"name":"list_sectors","description":"Sector rollups with provider-qualified hiring-record counts, median wage and occupation demand. Candidate profiles are excluded. Read meta.evidence before inter"},{"name":"get_sector","description":"One sector: its occupations, provider-qualified postings by community, and notable employers."},{"name":"summarize_credential_demand","description":"Aggregate hiring records associated with occupational credential requirements. Candidate profiles and holder counts are excluded; the result describes demand ev"},{"name":"search_employers","description":"Search the public business directory by name, municipality, sector group and observed hiring flag. Preview providers return modelled activity scenarios, not bus"},{"name":"get_trade_overview","description":"Saskatchewan merchandise exports by NAPCS section from Statistics Canada. Station-level CGC rows are excluded pending commercial redistribution permission."},{"name":"get_real_estate","description":"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 "},{"name":"search_licensed_businesses","description":"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 — u"},{"name":"get_wages","description":"Measured wages and vacancies (Statistics Canada, real data): LFS median/average hourly wages by occupation group × province, and JVWS job vacancies with average"},{"name":"get_rents","description":"Measured rental markets (CMHC Rental Market Survey via Statistics Canada, real data): average rents by unit type (bachelor to 3+ bedroom) and rental vacancy rat"},{"name":"list_noc_groups","description":"The complete NOC 2021 occupational classification: all 516 unit groups with bilingual titles, TEER tiers, and platform coverage flags. Use to map any Canadian o"},{"name":"evaluate_pathways","description":"The decision tool: evaluate realistic routes into work for a person's stated credentials, education, experience, driver licence, relocation boundary, housing an"},{"name":"inspect_procurement_activity","description":"Inspect official Saskatchewan CanadaBuys procurement observations by buyer, notice, or UNSPSC product/service category. Returns current and historical lifecycle"},{"name":"assess_procurement_relevance","description":"Compare the supply categories a business has published against the UNSPSC categories official buyers have requested. Returns category compatibility only, classe"},{"name":"assess_workforce_demand","description":"Report occupational demand, credential demand, training availability and a training-route constraint indicator separately. It does not combine them into a short"},{"name":"find_potential_suppliers","description":"Find businesses whose published supply categories match the categories a business has published as things it buys. Returns potential_compatibility only: no rela"},{"name":"find_potential_customers","description":"Find businesses whose published purchasing categories match the categories a business has published as things it can supply. Returns potential_compatibility onl"},{"name":"list_economic_signals","description":"List governed Saskatchewan economic signals from official structured sources. Each row preserves lifecycle state and uncertainty; notices do not prove an award,"},{"name":"get_economic_signal","description":"Get one governed economic signal by its source-stable id, including provenance, lifecycle state, mappings and uncertainty boundaries."},{"name":"get_emerging_signals","description":"Backward-compatible alias for list_economic_signals."},{"name":"get_data_sources","description":"Read the governed upstream source registry: publisher datasets, stable source ids, licence decisions, approved and excluded uses, checked releases, materializat"},{"name":"get_data_providers","description":"Read runtime provider contracts grouped as evidence, preview, planned, first-party and derived. Only the evidence group is eligible to support factual claims."},{"name":"get_source_provenance","description":"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 upstr"},{"name":"resolve_citation","description":"Resolve a public graph assertion citation to its canonical entity or entities, exact assertion, source, observation time, truth state, confidence, publication s"},{"name":"get_economy_overview","description":"Modeled community GDP for Saskatchewan: official provincial sector GDP (36-10-0711-01, 2022 current dollars) allocated across all 951 census subdivisions by mea"},{"name":"get_municipality_evidence_coverage","description":"Evidence availability and confidence-gate work queue for all 17 Saskatchewan cities and 149 towns. Returns current Tier A–D counts, evidence-domain coverage, pu"},{"name":"get_community_economy","description":"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 sec"},{"name":"resolve_entity","description":"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."},{"name":"get_entity","description":"Retrieve one governed entity record with its evidence, provenance, canonical links, and permitted interpretation."},{"name":"search_entities","description":"Search across supported OEX entity classes using names, aliases, slugs, and official identifiers."},{"name":"search_businesses","description":"Search governed municipal licensed-business snapshots without inferring operating health, employment, ownership, or hiring."},{"name":"get_business_evidence","description":"Retrieve the governed context and evidence boundary for one business entity. Licence presence establishes snapshot presence only."},{"name":"get_community_profile","description":"Retrieve one municipality as a governed economic profile with canonical identity, available evidence, links, and qualifications."},{"name":"compare_communities","description":"Compare 2–10 Saskatchewan communities and return explicit missing-data and comparability results for every requested metric."},{"name":"get_labour_demand","description":"Retrieve governed Saskatchewan labour-demand evidence while keeping advertised openings, statistical vacancies, live listings, and modelled sector allocations d"},{"name":"get_wage_evidence","description":"Retrieve wage evidence for an occupation and geography with units, period, source, confidence, and comparability qualifications."},{"name":"traverse_relationships","description":"Traverse bounded, typed economic relationships from a resolved entity without treating missing edges as false."},{"name":"find_connected_entities","description":"Find entities connected through governed graph predicates, with source, truth state, confidence, and hop annotations."},{"name":"get_evidence","description":"Retrieve a governed upstream source or runtime provider and its lineage, licence boundary, releases, and serving status."},{"name":"explain_confidence","description":"Explain the OEX A–D record-confidence vocabulary, its weakest-input rule for derived values, and the interpretation contract."},{"name":"explain_truth_state","description":"Explain what an OEX truth state permits an agent to claim and return the complete interpretation contract."},{"name":"check_comparability","description":"Check whether requested community observations share compatible concepts, units, geographic boundaries, and reference periods; return explicit reasons where the"},{"name":"check_business_health","description":"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 accou"},{"name":"explain_business_claim","description":"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"},{"name":"list_health_capabilities","description":"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 "},{"name":"create_sandbox_business","description":"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 dir"},{"name":"list_sandbox_businesses","description":"List the sandbox businesses that exist, so you can resume working on one."},{"name":"get_business_health","description":"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 evalu"},{"name":"get_business_health_markdown","description":"The same report as markdown — the form an owner would hand to whoever maintains their website."},{"name":"update_business_record","description":"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"},{"name":"grant_business_consent","description":"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: g"},{"name":"set_website_domain","description":"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"},{"name":"get_generated_asset","description":"Get an asset OEX generates from the business's own record: 'local-business-jsonld' or 'corrected-info-block'."},{"name":"start_health_action","description":"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."},{"name":"report_health_action_complete","description":"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."},{"name":"recheck_business_health","description":"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 re"},{"name":"get_health_action_history","description":"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 a"},{"name":"check_opportunity_readiness","description":"For each public procurement notice whose requested categories overlap what this business has published, what about the business's OEX representation is in order"},{"name":"run_business_study","description":"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 "},{"name":"run_business_study_markdown","description":"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."}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ca.veilpoint/opportunity-exchange","url":"https://registry.modelcontextprotocol.io/v0/servers/ca.veilpoint%2Fopportunity-exchange","firstSeenAt":"2026-09-05T16:18:48.325Z","fetchedAt":"2026-09-05T16:18:48.325Z","normalizedAt":"2026-09-05T16:18:48.325Z"}]},"firstSeenAt":"2026-09-05T16:18:48.325Z","updatedAt":"2026-09-05T19:28:33.184Z"}