Skip to main content
Glama

Find contracts for a business description

find_business_fit
Read-only

Rank open CanadaBuys and Alberta Purchasing Connection notices for a free-text business description. A commodity-code and term prefilter cuts the catalogues to a short candidate list, then TypeSafe Jev classifies each notice: could this business supply it (yes, partial, or no) and as which capability (goods supply, services, training, or subcontract). Yes and partial results are ordered by that verdict, then by the existing keyword score and Buy Canadian bonus. If Jev is not configured or rejects the key, keyword ranking is used and the result says so. The description and a short notice summary are sent to TypeSafe when classification runs. See /privacy. workspaceAlberta does not submit a bid or decide eligibility. When a business description is present and TypeSafe is configured, notice text and that description are sent to TypeSafe for supply-fit classification. See /privacy.

Input Schema

NameRequiredDescriptionDefault
daysNoOnly show notices closing within N days (default 120, max 365)
limitNoMaximum results (default 15, max 50)
sourceNoall, federal, or albertaall
profileNoInline business profile used for this call only. Overrides any saved profile. On the shared public endpoint without a subscriber key, this is the way to describe your business.
categoryNoOptional category filter
locationNoWhere the business works, such as Red Deer, Alberta.
provinceNoOptional province or delivery region filter
descriptionYesWhat the business does, in its own words. Example: a bakery in Red Deer that bakes at scale and teaches culinary skills.
company_nameNoOptional company name for the heading.

Output Schema

NameRequiredDescriptionDefault
kindNo
countNo
warningsNo
opportunitiesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint/openWorldHint/destructiveHint, and the description adds genuinely non-obvious behavior: a commodity-code and term prefilter, TypeSafe Jev classification of each notice with a yes/partial/no verdict plus capability label, a defined sort order (verdict, keyword score, Buy Canadian bonus), and a graceful degradation path when the key is rejected. It also discloses that the business description and notice text are sent to a third party (TypeSafe) with a /privacy pointer, which is exactly the kind of context annotations cannot convey.

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

Conciseness2/5

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

The lead sentence is well front-loaded, but the closing two sentences restate the TypeSafe data-sharing disclosure already made mid-paragraph, including a second 'See /privacy.' That is roughly a third of the text spent on a verbatim repeat. Sentence two is also an overstuffed run-on mixing prefiltering, classification output, and sort order in one breath.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description covers the pipeline, the fallback, the ordering, the privacy/third-party disclosure, and the scope disclaimer. Minor gaps remain: the 'Buy Canadian bonus' and 'existing keyword score' inputs to ranking are named but never defined, and the relationship to saved profiles is left to the schema's profile description.

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

Parameters3/5

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

Schema description coverage is 100%, including the nested profile object and its fields, so the schema already carries parameter meaning. The description adds indirect value by explaining that the commodity-code/term prefilter and the classification step consume the description and profile fields, but it gives no syntax, bounds, or interaction detail beyond what the schema states (e.g., days max 365, limit max 50).

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

Purpose4/5

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

States a specific verb and resource: rank open CanadaBuys and Alberta Purchasing Connection notices against a free-text business description, with the two-stage prefilter plus TypeSafe Jev classification spelled out. That is far more specific than the name alone. It does not, however, name or differentiate itself from close siblings such as find_matching_opportunities, find_opportunities, or search_contracts, which an agent must disambiguate on its own.

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

Usage Guidelines3/5

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

The description explains the internal routing conditions (Jev configured → classification ranking; not configured or key rejected → keyword ranking with a stated caveat), which is useful. But it never says when to choose this tool over its many siblings, and the only stated exclusion is that workspaceAlberta does not submit a bid or decide eligibility. Usage is implied by the two marketplaces covered, not guided.

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.