Skip to main content
Glama

workspace-alberta

List the bidder requirements in a tender

classify_tender

List what a bidder must supply for one tender: splits the tender PDFs into clauses, classifies each clause and page with TypeSafe AI's Jev classifier, and groups the results into one requirement per kind (for example key personnel, mandatory site visit, bid bond), with a mandatory flag, the WorkspaceAlberta connector that would collect it, lead time, page numbers and short evidence quotes. Clause and page text is sent to TypeSafe AI (api.typesafe.ai) for classification; WorkspaceAlberta stores nothing beyond the existing private upload bucket for APC files. PDFs only (PDFs inside ZIPs are read); up to 800 pages and 8,000 clauses per call. CanadaBuys: reads the public tender attachments. Alberta APC: the first call returns a private upload link (the same upload flow as process_bid_room); the user downloads the documents with their own APC supplier account and uploads them, then you call again with upload_token. The link expires as before (2 hours). This tool does not delete the uploads, so process_bid_room can use the same upload_token afterwards. Returns markdown followed by the full result as JSON (schema wa.tender_requirements.v1, with tender closing time and posting link). Returns within 140 seconds; a result cut short by a limit is labelled partial. Results are classifier outputs: verify them against the official posting and amendments. Hosted: sign-in and an active workspaceAlberta Pro subscription required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
referenceYesCanadaBuys or Alberta APC reference number
upload_tokenNoFor APC only: the upload_token from an earlier classify_tender or process_bid_room result, after the user has uploaded the documents they downloaded from APC.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations present, it still adds substantial behavior beyond them: clause/page text is sent to an external API (api.typesafe.ai), nothing is stored beyond the existing private bucket, PDF-only with ZIP extraction, 800-page/8,000-clause caps, 2-hour link expiry, non-deletion of uploads, 140-second runtime with a 'partial' label, classifier-output caveat, and sign-in + Pro subscription requirement. No contradiction with readOnlyHint=false or destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence is substantive, but they are packed into one dense unbroken paragraph that interleaves purpose, data-sharing disclosure, provider-specific flows, limits, and return format. A few bulleted lines or sentence grouping would make it far easier to scan; as written, the reader must parse a wall of text for a tool with only two parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description specifies the return shape (markdown plus JSON under schema wa.tender_requirements.v1 with closing time and posting link), the 140-second bound, and the partial-result marker. Given the external-API, two-source complexity, nothing an agent needs to invoke this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it frames reference as a CanadaBuys or APC identifier and explains that upload_token only applies to the APC second call, obtained from a prior classify_tender or process_bid_room result after the user uploads. This positions the parameters within the two-step flow in a way the schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource: 'List what a bidder must supply for one tender', then names the pipeline (split into clauses, classify, group into one requirement per kind) and concrete outputs (mandatory flag, connector, lead time, page numbers, evidence quotes). An agent can distinguish this from siblings like process_bid_room or bid_no_bid_scorecard without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context split by source: CanadaBuys reads public attachments directly, Alberta APC requires the two-call upload flow with upload_token, and it explicitly notes process_bid_room can reuse the same token afterward. It does not name a when-not-to-use case or a competing classification tool, so it falls short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources