Command Palette

Search for a command to run...

UnylyUnyly
Browse all

WorkspaceAlberta

FreeNot checked

MCP server for Canadian procurement intelligence, enabling unified search of federal and Alberta tender opportunities, deadline tracking, profile-based matching

GitHubEmbed

About

MCP server for Canadian procurement intelligence, enabling unified search of federal and Alberta tender opportunities, deadline tracking, profile-based matching, daily briefs, and AI-assisted bid analysis.

README

Women workers at Small Arms Limited, 1942. Sophie O'Kowinski reaming a Bren gun barrel at the John Inglis Company munitions plant, 1943.

Canadian industrial war production, via Library and Archives Canada.

Getting Started

The hosted MCP server is live and free for browsing — no install, no account, no API key. Point any MCP-capable assistant at it:

https://elbowsupknivesout.warreandvavasour.com/mcp

Cursor, Claude Code, and other HTTP-native clients — add to your MCP config:

{
  "mcpServers": {
    "workspacealberta": {
      "url": "https://elbowsupknivesout.warreandvavasour.com/mcp"
    }
  }
}

Claude Desktop (no native HTTP transport) — bridge with mcp-remote:

{
  "mcpServers": {
    "workspacealberta": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://elbowsupknivesout.warreandvavasour.com/mcp"]
    }
  }
}

Then ask it something a real owner would ask:

  • "I run a CWB welding shop in Red Deer — what government work fits my shop right now?"
  • "What closes this week? I don't want to miss anything."
  • "Give me my morning brief — what fits us, and what's closing soon?"

Run it locally instead (the whole server is pure Python):

python -m pip install -r requirements.txt
python mcp-servers/canadabuys/server.py

Smoke test: python -m unittest tests.test_canadabuys_mcp_smoke. Client config variants live in mcp.json.example; full tool and REST reference in docs/mcp-tool-reference.md.


Canadian AI Security Is Canadian National Security

WorkspaceAlberta is a Canadian procurement intelligence workspace. It connects public tender data to the people who can actually do the work: fabricators, mills, contractors, shops, manufacturers, and the small teams that keep the real economy moving.

The direction is explicit:

  • Canadian demand signals: CanadaBuys and Alberta Purchasing Connection in one search surface.
  • Canadian AI company: Cohere as the first sovereign-model route.
  • Canadian open source model: Command A+ command-a-plus-05-2026, with the W4A4 Hugging Face route available through CohereLabs/command-a-plus-05-2026-w4a4.
  • Canadian tools: practical MCP wiring for the procurement sources Canadian firms already need to watch.
  • Canadian compute path: designed so sensitive public-sector and industrial workflows can move toward Canadian infrastructure, including Canadian chips and data-centre capacity where those options are available.

The point is not nationalism as decoration. The point is operational independence.

If Canadian companies are going to bid Canadian work, understand Canadian supply chains, and protect Canadian industrial capacity, then the AI layer underneath that work matters.


The Last Mile of Work

AI promised 5X productivity. Most small businesses got a chatbot that writes mediocre marketing copy.

The model is not the whole bottleneck. The connection is.

Wiring up the places where the work lives usually costs money, time, and technical patience a small business does not have. Government tender databases are a perfect example: the work is public, the demand is real, but the discovery process is still awkward enough that good companies miss good opportunities.

WorkspaceAlberta solves the last mile by giving an AI assistant the wiring it needs to search, compare, summarize, and brief public procurement opportunities from inside the workspace where the owner is already working.

The High Level Bridge between Edmonton and Strathcona under construction, circa 1909.

The High Level Bridge under construction, Edmonton, c. 1909 — Alberta steel, riveted by hand. City of Edmonton Archives, EA-500-4 (public domain).


What This Actually Does

WorkspaceAlberta is an MCP-first workspace for Canadian procurement.

It now brings together:

  • CanadaBuys for federal tender notices
  • Alberta Purchasing Connection for Alberta public-sector opportunities
  • Cohere Command A+ for optional tender analysis and fit review
  • A daily bid brief that summarizes the market, best-fit matches, and deadlines from both sources

A welder at Robin Nodwell Ltd., Calgary, 1963.

Welder at Robin Nodwell Ltd., Calgary, 1963 — from the Provincial Archives of Alberta series "What Alberta Makes Makes Alberta" (PA3324, no known copyright restrictions).

The assistant can:

  • search national and Alberta opportunities together
  • inspect a posting by reference number
  • list what is closing soon
  • match opportunities against a saved business profile
  • generate a free daily brief for the owner or estimator
  • use Cohere Command A+ to review tender fit, risks, requirements, and next actions

This is meant to answer practical questions:

  • What work is open right now?
  • Which opportunities fit what we actually do?
  • What closes soon?
  • What should we read first?
  • What should we ignore?

The Custom Procurement MCP Server

The custom MCP server is the product.

It is a deployed working endpoint that knows the live public procurement pipeline exposed by CanadaBuys and Alberta Purchasing Connection. It can serve that pipeline back to users through an AI assistant based on what they do, where they work, what they can supply, and what deadlines matter.

The core tools are:

  • search_opportunities for unified federal and Alberta search
  • get_opportunity_details for a single posting by reference number
  • list_deadlines for what is closing soon
  • find_matching_opportunities for profile-based ranking
  • daily_bid_brief for the daily owner/operator summary
  • analyze_contract_with_cohere for optional Cohere Command A+ tender review
  • process_bid_room for live E2B attachment extraction and Cohere tool-assisted bid review
  • watch_opportunity / list_watchlist for a persistent tracking list with closing-date countdowns
  • bid_no_bid_scorecard for a fast deterministic go/caution/no-go read on any reference

The full tool and REST reference lives in docs/mcp-tool-reference.md; the architecture walkthrough is docs/architecture.md.

MCP is the first-class interface because this is meant to be used by agents. The same procurement core also exposes REST/OpenAPI so other AI tools can hook into the same contract intelligence without needing native MCP support.

Underneath the endpoint is pure Python procurement logic. The data processing, filtering, matching, deadline ranking, and brief generation do not require an LLM. The model layer is added only where judgment helps: risk review, requirements explanation, and bid/no-bid reasoning.

E2B sandboxes are the isolated compute layer for heavier bid-room work: opening tender packages, parsing attachments, extracting compliance requirements, and returning structured bid artifacts without putting unknown user files inside the always-on MCP service. Cohere Command A+ runs inside the short-lived sandbox with read-only evidence tools over the extracted documents. The build plan lives in docs/e2b-bid-room-plan.md, and the business-owner operating diagram lives in docs/bid-room-operating-diagram.md.

A machinist at Canada Oil Tool Manufacturing, Calgary, 1963.

Machinist at Canada Oil Tool Manufacturing, Calgary, 1963 — precision work for the energy sector. Provincial Archives of Alberta, PA3318/2 (no known copyright restrictions).


Why This Matters

Get 50% of the population 10% better. Every year. That is generational growth.

Not 10 developers 500% better. That is happening. But it does not scale to the economy.

"How do I save 5 hours a week?" "How do I save $700 a month?"

Those are the real questions. This is how you answer them.

Alberta's steel, lumber, and metals industries represent over 2,500 companies with a combined economic impact exceeding $37 billion annually.

Sector Companies Economic Impact Jobs Supported
Forestry & Wood Products 676+ businesses, 40 major mills $14 billion 41,400
Fabricated Metal Products 1,871 establishments $23.4B manufacturing sector 16,600
Primary & Machinery Manufacturing 200+ facilities Included above 12,000+

Three photographs of workers pouring steel at the Foothills Steel Foundry, Calgary, 1963.

What Alberta makes makes Alberta — the pour at Foothills Steel Foundry, Calgary, 1963. Provincial Archives of Alberta, PA3315.1–.3 (no known copyright restrictions).

Behind every one of these companies are dozens of systems that need to talk to each other just to get anything done: quoting software, inventory spreadsheets, accounting packages, project trackers, supplier portals, and government tender databases.

Any tool that helps a fabricator create demand, a mill manufacture more efficiently, or a contractor cut costs has multiplier effects across the entire province:

  • $4 billion in forest product exports alone
  • $1.6 billion in annual wages paid to forestry workers
  • 70 communities across Alberta that depend directly on these industries
  • $988 million in tax revenue flowing back to the province

Walter's Saw Mill, Edmonton, 1908. Alberta Lumber Co.'s Factory, Edmonton, 1908.

Walter's Saw Mill (1908) and the Alberta Lumber Co.'s Factory (1908), Edmonton — value-added Alberta manufacturing, first edition. City of Edmonton Archives, EA-500-205 and EA-500-290 (public domain).

More contracts won. More jobs kept. More skill developed. More value staying here at home.


Technical Notes

MCP server:

Smoke test:

Configuration:

Data and model sources:

Image source notes live in docs/imagery-sources.md.

A museum wall of Canadian industrial photography: steel, foundries, machine shops, and mills from 1870 to 1957.

The museum wall. Top row: crucible pour, Stelco, Hamilton, 1957 (Herb Taylor / Library and Archives Canada, CC BY 2.0); Norwood Foundry crew, Edmonton, 1935 (Provincial Archives of Alberta, A6237); Bawden Machine Co. blacksmith shop, Toronto, c. 1918 (LAC, CC BY 2.0); machinist, Alberta Foundry & Machine Shop, Medicine Hat, c. 1940s (PAA, A10335). Bottom row: grading lumber by hand (Nicholas Morant / LAC, CC BY 4.0); mill interior, Maberly, Ontario, c. 1870 (LAC, CC BY 2.0); Manitoba Bridge & Iron Works, Winnipeg, c. 1914–18 (LAC, CC BY 2.0); Alberta Foundry & Machine Co. lineup, Medicine Hat, c. 1915 (PAA, A10587).


The OPERA Analytics Server

The country is traveling west. Domestic travel to the western provinces is scaling, and the properties hosting those travelers run on systems like OPERA Cloud.

The Warre & Vavasour tourism thesis: in an extreme-AI world, people crave the analog. Real places, real adventures. The premium goes to authentic, place-bound experiences — and AI is invisible wiring, not the product.

The wiring problem looks exactly like procurement's last mile. A hotel's own data lives inside OPERA Cloud, and getting it out for analysis usually means expensive middleware or manual exports. Front-desk managers, revenue people, and owners can't use what they can't reach.

So the repo ships a second MCP server: mcp-servers/opera-analytics/server.py, a read-only analytics data tap for OPERA Cloud Reporting & Analytics Data APIs. A property's own user signs in as themselves — OAuth2 password grant, with credentials from the hotel's own OPERA Cloud Developer Portal. No partner program, no middleware vendor.

It covers 75 analytics subject areas — guest/deposit/AR ledgers, transactions, reservation statistics and pace, managers report, history and forecast, rate codes, profiles, blocks, catering events, housekeeping inventory — through 9 tools:

  • opera_auth_status to check the session
  • list_subject_areas / describe_subject_area to see what data exists
  • run_graphql_query / query_subject_area to pull it
  • export_to_csv / sync_subject_area to land it locally
  • list_local_tables / query_local_data to work with what's synced

Data lands in local CSV files and a DuckDB database the team can open in Excel or Power BI, or ask questions about in plain language through any MCP-capable assistant. Read-only by design. Set OPERA_MOCK=1 to try it offline with no credentials; smoke test: python -m unittest tests.test_opera_analytics_smoke. Server docs live in mcp-servers/opera-analytics/README.md.

Tools employees can actually use, from the systems they already have. The same pattern as the procurement work: take an awkward system of record, give people their own data back, charge for outcomes not visibility.


Data sources: Statistics Canada, Innovation Canada, Alberta Forest Products Association, Job Bank Canada

from github.com/HarleyCoops/WorkspaceAlberta

Install WorkspaceAlberta in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install workspacealberta

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add workspacealberta -- npx -y @warreandvavasour/workspace-alberta

Step-by-step: how to install WorkspaceAlberta

FAQ

Is WorkspaceAlberta MCP free?

Yes, WorkspaceAlberta MCP is free — one-click install via Unyly at no cost.

Does WorkspaceAlberta need an API key?

No, WorkspaceAlberta runs without API keys or environment variables.

Is WorkspaceAlberta hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install WorkspaceAlberta in Claude Desktop, Claude Code or Cursor?

Open WorkspaceAlberta on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare WorkspaceAlberta with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs