Tolca

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,322Tokens (tool definitions)
~6.2 KBTypical response size
Moderate attention impact (1.03% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "tolca": {
      "url": "https://tolca.tonbot.ca/mcp/public"
    }
  }
}

Remote endpoints

https://tolca.tonbot.ca/mcp/publicstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢qc_contractor_check(neq, licence, name, lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "neq": {
      "description": "Québec enterprise number (NEQ), 10 digits",
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "licence": {
      "description": "RBQ licence number, e.g. 8315-8105-31",
      "type": "string"
    },
    "name": {
      "description": "Business name, exact or partial",
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "lang": {
      "description": "Answer language, default fr",
      "type": "string",
      "enum": [
        "fr",
        "en"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "neq": {
          "type": [
            "string",
            "null"
          ]
        },
        "licence": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "matched_by": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": {},
      "description": "What was searched and how it matched"
    },
    "verdict": {
      "type": "string",
      "enum": [
        "ok",
        "review",
        "blocking",
        "not_found"
      ],
      "description": "ok = active licence, no RENA, no penalty; review = something to look at; blocking = RENA listing or no active licence; not_found = no match"
    },
    "verdict_label": {
      "type": "string"
    },
    "reasons": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Plain-language reasons for the verdict"
    },
    "rbq": {
      "anyOf": [
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ],
      "description": "RBQ licence record: licence, neq, name, status, restriction, bond, municipality, subcategory_labels, candidates"
    },
    "rena": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      },
      "description": "Matching RENA entries (public-contract ban)"
    },
    "environmental_penalties": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      },
      "description": "Matching environmental administrative penalties"
    },
    "public_contracts": {
      "description": "Public 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",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "page": {
            "type": "string"
          },
          "license": {
            "type": "string"
          },
          "extracted_at": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": {}
      },
      "description": "Official sources with extraction dates"
    },
    "notice": {
      "type": "string"
    }
  },
  "required": [
    "query",
    "verdict",
    "verdict_label",
    "reasons",
    "rbq",
    "rena",
    "environmental_penalties",
    "sources"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢qc_licence(neq, licence, name, lang)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "neq": {
      "description": "Québec enterprise number (NEQ), 10 digits",
      "type": "string",
      "pattern": "^\\d{10}$"
    },
    "licence": {
      "description": "RBQ licence number, e.g. 8315-8105-31",
      "type": "string"
    },
    "name": {
      "description": "Business name, exact or partial",
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "lang": {
      "description": "Answer language, default fr",
      "type": "string",
      "enum": [
        "fr",
        "en"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "neq": {
          "type": [
            "string",
            "null"
          ]
        },
        "licence": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "matched_by": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": {}
    },
    "active": {
      "type": "boolean",
      "description": "true if an ACTIVE RBQ licence was found"
    },
    "restricted": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "licence": {
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "neq": {
      "type": [
        "string",
        "null"
      ]
    },
    "municipality": {
      "type": [
        "string",
        "null"
      ]
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Authorized RBQ work subcategories"
    },
    "candidates": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      },
      "description": "Other possible matches when the name is ambiguous"
    },
    "source": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "page": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "extracted_at": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": {}
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "query",
    "active",
    "licence",
    "name",
    "neq",
    "municipality",
    "categories",
    "candidates",
    "source"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools