Skip to main content
Glama

Server Details

Know who you are paying before you pay: Québec contractor and company checks, plus web search. x402.

Ownership verified
Status
Healthy
Uptime
99.7% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
yayabough/tolca
GitHub Stars
0
Server Listing
Tolca
ChatGPT
–
Claude
Tolca

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have broadly distinct scopes and the descriptions explicitly cross-reference each other (qc_licence points to qc_contractor_check for RENA/penalties). However, company_profile already includes contractor licences and US/UK/EU/Canadian sanctions screening, which overlaps with both sanctions_check and qc_licence, so an agent could plausibly pick the broad tool when the focused one was intended, or vice versa.

Naming Consistency4/5

All names are snake_case noun phrases, which is internally consistent. The only deviation is the 'qc_' prefix applied to two of four tools, though this is a defensible jurisdiction marker rather than an arbitrary inconsistency.

Tool Count5/5

Four tools is a well-scoped set for a company due-diligence server: one broad profile, one deep jurisdictional check, one fast lookup, and one sanctions screen. Each tool has a clear reason to exist and none feels like filler.

Completeness4/5

The surface covers the core due-diligence workflow (identify, verify licence, deep jurisdictional risk, sanctions) with no dead ends within Québec. Gaps remain for deep checks in other jurisdictions outside Québec, and there is no batch/bulk mode despite qc_licence being pitched for checking several contractors in sequence.

Available Tools

4 tools
company_profileCompany profile from a website or nameA
Read-onlyIdempotent
Inspect

Get a company's profile in one call, read live from its own website plus official registries: what it does, industry, services, service area, address, phones and emails published by the company (each with the page it came from), social links, and official screening (company registries, contractor licences, US, UK, EU and Canadian sanctions lists). Use when the user asks who a company is, how to contact it, or wants to research a prospect, supplier or partner. Provide domain (preferred) or name, optional city and country. Businesses only, no personal data. Free with a shared daily quota.

NameRequiredDescriptionDefault
cityNo
langNo
nameNoCompany name, used to find the website when no domain is given
domainNoCompany website or domain, e.g. acme.com
countryNoCountry: ISO 3166 alpha-2 code (CA, US) or name (Canada)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, and the description adds real context beyond that: a shared free daily quota (rate limiting), business-only scope with no personal data (privacy boundary), live source provenance per contact field, and which registries/sanctions lists are consulted. It does not say what happens when no website or registry match is found, which is the main remaining behavioral gap.

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

Conciseness4/5

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

Front-loaded with the core capability and the return contents before the usage sentence, with no filler. The field enumeration is a long, dense clause, but each item carries information an agent needs to decide relevance.

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 no output schema and no required parameters, the description correctly compensates by enumerating the returned profile fields and their provenance, and it states the cost/quota model and data boundary. What remains thin is failure behavior (no website found, no registry match) and the unexplained 'lang' option.

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?

The description adds genuine routing meaning by stating that domain is preferred and name is the fallback, going beyond the schema. However it only restates that city and country are 'optional', and the 'lang' parameter (en/fr enum) is unexplained in both the description and the schema, leaving one of five parameters with zero semantics and two with no added depth.

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?

Names a specific verb and resource ('Get a company's profile') and enumerates the returned data: what it does, industry, services, service area, address, phones/emails with source pages, social links, and official screening across registries and sanctions lists. This makes it clearly broader than the screening-focused siblings (sanctions_check, qc_licence, qc_contractor_check) even though they are not named.

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 explicit trigger conditions ('who a company is, how to contact it, or wants to research a prospect, supplier or partner') and input preference ('domain (preferred) or name'). It stops short of exclusion guidance, e.g. when to route a pure sanctions or licence query to sanctions_check or qc_licence instead of this broader call.

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

qc_contractor_checkQuébec contractor checkA
Read-onlyIdempotent
Inspect

Check a Québec construction contractor against four official public data sources in one call: active RBQ licence (status, restrictions, bond, authorized work categories), RENA (businesses barred from public contracts and public subcontracts), environmental administrative penalties (MELCCFP) and public contracts awarded on SEAO (count, total amount, main public buyers, last 12 months). Returns a verdict ok / review / blocking / not_found with reasons, sources and extraction dates. Use when the user asks whether a Québec contractor, subcontractor or renovation company is licensed, trustworthy or eligible for public contracts. Provide neq, licence or name.

NameRequiredDescriptionDefault
neqNoQuébec enterprise number (NEQ), 10 digits
langNoAnswer language, default fr
nameNoBusiness name, exact or partial
licenceNoRBQ licence number, e.g. 8315-8105-31

Output Schema

NameRequiredDescription
rbqYesRBQ licence record: licence, neq, name, status, restriction, bond, municipality, subcategory_labels, candidates
renaYesMatching RENA entries (public-contract ban)
queryYesWhat was searched and how it matched
noticeNo
reasonsYesPlain-language reasons for the verdict
sourcesYesOfficial sources with extraction dates
verdictYesok = active licence, no RENA, no penalty; review = something to look at; blocking = RENA listing or no active licence; not_found = no match
verdict_labelYes
public_contractsNoPublic contracts awarded on SEAO in the last 12 months: contracts, total_cad, first_award, last_award, buyers, by_category, recent (up to 5), matched_by
environmental_penaltiesYesMatching environmental administrative penalties

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world and non-destructive behavior, so the bar is lower; the description still adds real value by naming the four sources queried, the 12-month contract window, and that extraction dates accompany the verdict. It does not mention latency, rate limits, or what happens when no source matches.

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

Conciseness4/5

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

Two sentences, both front-loaded with the key facts (sources first, then when-to-use and inputs). The first sentence is clause-dense, but no sentence is wasted or redundant.

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?

An output schema exists, so return-value detail is not needed, and the description still summarizes the verdict model. Sources, trigger conditions, identifier options and freshness are all covered, which is complete for an agent deciding whether and how to call this multi-source lookup.

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 a disjunction not expressed in the schema (zero required params): the caller must supply neq, licence or name. It does not explain acceptable name-matching fuzziness or the effect of lang, though the schema documents both.

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?

States a specific verb (check) plus resource (Québec construction contractor) and enumerates the four data sources and their scope. It clearly differentiates itself from the sibling qc_licence by covering RBQ licence plus RENA, MELCCFP penalties and SEAO contracts in one call, and names the verdict values returned.

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 an explicit trigger ('Use when the user asks whether a Québec contractor, subcontractor or renovation company is licensed, trustworthy or eligible for public contracts') and tells the agent which identifier to supply. It does not state when to prefer the sibling qc_licence over this broader check, so the alternative-route guidance is incomplete.

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

qc_licenceQuébec RBQ licence lookupA
Read-onlyIdempotent
Inspect

Fast lookup: does this Québec business hold an ACTIVE RBQ (Régie du bâtiment du Québec) construction licence right now? Returns active true/false, licence number, legal name, NEQ, municipality, restriction flag and authorized work categories. Good for checking several contractors one after another. For the RENA public-contract ban and environmental penalties, use qc_contractor_check. Provide neq, licence or name.

NameRequiredDescriptionDefault
neqNoQuébec enterprise number (NEQ), 10 digits
langNoAnswer language, default fr
nameNoBusiness name, exact or partial
licenceNoRBQ licence number, e.g. 8315-8105-31

Output Schema

NameRequiredDescription
neqYes
nameYes
noteNo
queryYes
activeYestrue if an ACTIVE RBQ licence was found
sourceYes
licenceYes
candidatesYesOther possible matches when the name is ambiguous
categoriesYesAuthorized RBQ work subcategories
restrictedNo
municipalityYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-structured behavior: the result reflects current status ('right now', ACTIVE), which implies a live external lookup rather than a cached record, and enumerates the returned fields including the restriction flag.

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

Conciseness5/5

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

Four tight sentences with the core capability, return shape, batch hint, sibling exclusion and parameter guidance front-loaded in that order. No filler and nothing repeated from the schema or annotations.

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?

For a read-only lookup with an output schema, an alternative sibling and 100% parameter coverage, the description supplies everything needed: what it answers, what comes back, which identifier to pass, and when to prefer the other tool.

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 would be 3. The closing 'Provide neq, licence or name' adds meaning the schema does not: despite zero required parameters, at least one identifier must be supplied, and any of the three is acceptable. That is useful disambiguation beyond the per-field descriptions, though it does not explain precedence when several are supplied.

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?

States a specific verb and resource ('does this Québec business hold an ACTIVE RBQ construction licence right now'), plus the exact return payload. It also names the sibling it is not for (RENA ban / environmental penalties), so an agent can distinguish it from qc_contractor_check without opening either schema.

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

Usage Guidelines5/5

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

Explicitly routes the agent: use this for live RBQ licence status, use qc_contractor_check for the RENA public-contract ban and environmental penalties. It also flags the batch use case ('good for checking several contractors one after another'), which is exactly the kind of when-to-use context that is otherwise invisible.

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

sanctions_checkSanctions screening of a companyA
Read-onlyIdempotent
Inspect

Screen a company name against official sanctions lists in one call: US Consolidated Screening List (including OFAC SDN and the Entity List), UK Sanctions List, EU Consolidated Financial Sanctions List and Canada's Consolidated Autonomous Sanctions List. Returns an action allow / review / block, a 0-100 risk score, each possible match with its list and official reference, and the date of each list copy. Use when the user asks whether a company, supplier, customer or counterparty is sanctioned before doing business with it. Companies only, not individuals. A review result means a person should confirm the identity. Provide name, optional country (ISO 3166 alpha-2). Free with a shared daily quota.

NameRequiredDescriptionDefault
nameYesCompany name to screen
countryNoOptional country: ISO 3166 alpha-2 code (CA, US) or name (Canada)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive/open-world, so the safety profile is covered. The description goes further by disclosing the return contract (allow/review/block action, 0-100 risk score, matches with list and official reference, list copy dates) and an operational constraint: free but subject to a shared daily quota.

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

Conciseness4/5

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

Front-loaded with the core action and sources, then usage, scope limits, input format, and quota. Dense and mostly waste-free, though the country format is repeated from the schema and the list enumeration is long.

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?

With no output schema, the description carries the full burden of describing results, and it does so (action, risk score, per-match list and reference, list copy dates). Combined with quota, scope limits, and interpretation guidance for 'review', an agent has everything needed to call and act on it.

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 coverage is 100%, so both parameters are already documented. The description restates name and optional country in ISO 3166 alpha-2 form, adding no format or behavior detail the schema does not already contain, so the baseline of 3 applies.

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?

"Screen a company name against official sanctions lists" gives a specific verb and resource, and the description enumerates the exact sources (US CSL incl. OFAC SDN and Entity List, UK, EU, Canada). The scope limit "Companies only, not individuals" further distinguishes it from any person-screening sibling.

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

Usage Guidelines5/5

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

States the triggering situation explicitly ("when the user asks whether a company, supplier, customer or counterparty is sanctioned before doing business with it") and an explicit exclusion (companies only, not individuals). It also tells the agent how to interpret a 'review' outcome, which is the main ambiguity in acting on results.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedcompany_profile2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"ISO 3166 alpha-2, e.g. CA, US"New value: +"Country: ISO 3166 alpha-2 code (CA, US) or name (Canada)"
      • changedInput schema / properties / country / maxLength
        Previous value: -2New value: +60
    • Changedsanctions_check2 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166 alpha-2 country code, e.g. CA, US"New value: +"Optional country: ISO 3166 alpha-2 code (CA, US) or name (Canada)"
      • changedInput schema / properties / country / maxLength
        Previous value: -2New value: +60
  2. 1 tool update
    • Addedsanctions_check
  3. 1 tool update
    • Addedcompany_profile
  4. 2 tool updates
    • First observedqc_contractor_check
    • First observedqc_licence

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables checking Québec contractors in one call — RBQ licence status, RENA debarment, environmental penalties, and SEAO public contracts — returning a deterministic ok/review/blocking/not_found verdict with sources. Paid per-call tools add web search with full page text and business verification against sanctions, corporate registries, and GLEIF data.
    2
    59 npm
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and retrieving 126 Canadian contractor forms with verified regulatory citations, determining needed forms from plain-language situations, and estimating 2026 provincial trades taxes, required hourly rates, and HST quick method comparisons.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Real-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.
    4
    71 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables listing and verifying licensed contractors across California, Texas, Washington, Oregon, and Louisiana by state, trade, city, county, license number, or business name, returning license status, expiration, classifications, owners, address, and phone.
    1
    74 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.