WorkspaceAlberta
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
WorkspaceAlberta
<p align="center"> <img src="docs/assets/women-workers-small-arms.jpg" alt="Women workers at Small Arms Limited, 1942." width="49%"> <img src="docs/assets/sophie-okowinski-bren-gun.jpg" alt="Sophie O'Kowinski reaming a Bren gun barrel at the John Inglis Company munitions plant, 1943." width="49%"> </p>
<p align="center"><em>Canadian industrial war production, via Library and Archives Canada.</em></p>
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 throughCohereLabs/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.
<p align="center"> <img src="docs/assets/high-level-bridge-edmonton-1909.jpg" alt="The High Level Bridge between Edmonton and Strathcona under construction, circa 1909." width="100%"> </p>
<p align="center"><em>The High Level Bridge under construction, Edmonton, c. 1909 — Alberta steel, riveted by hand. City of Edmonton Archives, EA-500-4 (public domain).</em></p>
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
<p align="center"> <img src="docs/assets/welder-robin-nodwell-calgary-1963.jpg" alt="A welder at Robin Nodwell Ltd., Calgary, 1963." width="55%"> </p>
<p align="center"><em>Welder at Robin Nodwell Ltd., Calgary, 1963 — from the Provincial Archives of Alberta series "What Alberta Makes Makes Alberta" (PA3324, no known copyright restrictions).</em></p>
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_opportunitiesfor unified federal and Alberta searchget_opportunity_detailsfor a single posting by reference numberlist_deadlinesfor what is closing soonfind_matching_opportunitiesfor profile-based rankingdaily_bid_brieffor the daily owner/operator summaryanalyze_contract_with_coherefor optional Cohere Command A+ tender reviewprocess_bid_roomfor live E2B attachment extraction and Cohere tool-assisted bid reviewwatch_opportunity/list_watchlistfor a persistent tracking list with closing-date countdownsbid_no_bid_scorecardfor 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.
<p align="center"> <img src="docs/assets/machinist-canada-oil-tool-calgary-1963.jpg" alt="A machinist at Canada Oil Tool Manufacturing, Calgary, 1963." width="55%"> </p>
<p align="center"><em>Machinist at Canada Oil Tool Manufacturing, Calgary, 1963 — precision work for the energy sector. Provincial Archives of Alberta, PA3318/2 (no known copyright restrictions).</em></p>
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+ |
<p align="center"> <img src="docs/assets/collage-what-alberta-makes.jpg" alt="Three photographs of workers pouring steel at the Foothills Steel Foundry, Calgary, 1963." width="100%"> </p>
<p align="center"><em>What Alberta makes makes Alberta — the pour at Foothills Steel Foundry, Calgary, 1963. Provincial Archives of Alberta, PA3315.1–.3 (no known copyright restrictions).</em></p>
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
<p align="center"> <img src="docs/assets/walters-saw-mill-edmonton-1908.jpg" alt="Walter's Saw Mill, Edmonton, 1908." width="49%"> <img src="docs/assets/alberta-lumber-co-factory-1908.jpg" alt="Alberta Lumber Co.'s Factory, Edmonton, 1908." width="49%"> </p>
<p align="center"><em>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).</em></p>
More contracts won. More jobs kept. More skill developed. More value staying here at home.
Technical Notes
MCP server:
mcp-servers/canadabuys/server.pymcp-servers/canadabuys/server_http.pyfor hosted StreamableHTTP MCP plus REST/OpenAPIprocurement_core/service.pyfor the shared Python procurement coreprocurement_core/e2b_bid_room.pyfor live E2B bid-room sandbox processing
Smoke test:
tests/test_canadabuys_mcp_smoke.pytests/test_procurement_http_app.pypython scripts/e2b_bid_room_smoke.pyfor a live E2B sandbox test
Configuration:
AGENTS.mdfor Codex/OpenClaw guidancemcp-servers/canadabuys/README.mdfor server tools and environment variablesdocs/setup-productization-track.mdfor the combined WorkspaceAlberta + privatewvsetupsetup trackdocs/codex-setup.mdfor local setup notesdocs/workspace-alberta-hermes-install.mdfor the branded Hermes / Raspberry Pi setup draft
Data and model sources:
- CanadaBuys open tender notices
- Alberta Purchasing Connection public opportunity API
- Cohere Command A+ via Cohere API
- CohereLabs Command A+ W4A4 on Hugging Face: https://huggingface.co/CohereLabs/command-a-plus-05-2026-w4a4
Image source notes live in docs/imagery-sources.md.
<p align="center"> <img src="docs/assets/collage-museum-wall.jpg" alt="A museum wall of Canadian industrial photography: steel, foundries, machine shops, and mills from 1870 to 1957." width="100%"> </p>
<p align="center"><em>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).</em></p>
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_statusto check the sessionlist_subject_areas/describe_subject_areato see what data existsrun_graphql_query/query_subject_areato pull itexport_to_csv/sync_subject_areato land it locallylist_local_tables/query_local_datato 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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。