905 Trades
Server Details
905 Trades, Hamilton ON residential trades referral network: facts, site search, quote requests.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: search finds pages, fetch retrieves page content, get_business_facts returns structured company information, and request_quote sends a contact request. No two tools overlap in function, and the descriptions reinforce when to use each.
The naming style is consistently lowercase with verbs leading each tool name (fetch, search, get_business_facts, request_quote). However, two tools are bare verbs while two follow a verb_noun pattern, which is a minor inconsistency.
Four tools is well-scoped for a small business website server. Each tool serves a necessary function without redundancy, and the count feels neither bloated nor insufficient.
The domain is the 905 Trades public website, and the surface covers the full user journey: search, read content, retrieve business facts, and initiate contact. No critical operations appear missing for this purpose.
Available Tools
4 toolsfetchRead a page from 905 TradesARead-onlyIdempotentInspect
The full text of one page of the 905 Trades website, as Markdown, with its canonical URL for citation. The id comes from search.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A page id returned by search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral details beyond annotations: states return format (Markdown) and inclusion of canonical URL. Annotations already declare readOnlyHint and idempotentHint, so safety is clear. The description adds value by specifying output structure and source of id, though it doesn't cover error handling or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, with the main purpose front-loaded. No filler or redundant information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter fetch tool with an output schema and read-only annotations, the description provides sufficient context: what it returns (Markdown + URL) and where the id comes from. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description already covers the id parameter ('A page id returned by search'), and the description repeats this essentially verbatim. With 100% schema description coverage, the baseline is 3; the description adds no extra semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (read page) and resource (905 Trades website page), and specifies output format (Markdown with canonical URL). It does not explicitly distinguish from siblings like get_business_facts or request_quote, but the 'full text of one page' is clear enough for most agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by stating 'The id comes from search,' which signals a dependency on a prior search call. However, there is no explicit guidance on when to prefer this tool over siblings, nor any when-not-to-use conditions. The usage context is present but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_facts905 Trades: business factsARead-onlyIdempotentInspect
The published facts about 905 Trades: what it does, the phone number, opening hours, the towns it serves, its services, and how it handles pricing. Every fact here also appears on the public website. Call this first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety. The description adds that all facts are published on the public website, indicating reliability and source. It also instructs to call it first, which is useful behavioral guidance beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the core purpose and lists specific fact categories, then provides a clear usage directive. It is succinct and easy to parse, earning a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter schema and annotations that already cover safety and idempotency, the description is complete. It specifies the exact content of the facts and the source, and even gives a usage hint. The lack of an output schema is mitigated by the explicit enumeration of what the tool returns. No additional information is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema description coverage is trivially 100%. The description does not need to explain any parameters. It lists the types of facts returned, which compensates for the lack of an output schema and gives the agent an idea of what to expect. Baseline 4 applies as no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it retrieves published business facts about 905 Trades, listing specific content types (phone number, hours, services, etc.). It is distinct from siblings like 'fetch' (generic), 'request_quote' (action), and 'search' (query), and the directive 'Call this first' further clarifies its role as the initial information source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this first,' which is a clear usage directive. It also implies that the tool provides foundational facts before other actions. However, it does not explicitly state when not to use it or compare it to alternatives, though the context of a zero-parameter facts tool makes its role obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_quoteAsk 905 Trades to have a contractor call a homeownerAInspect
Send a homeowner's request to 905 Trades so one contractor for that trade and town calls them back. This sends a REAL message to a real small business, so call it only when the person has clearly asked to be contacted by 905 Trades and has given you their own name and their own phone number or email. Never guess or invent contact details. Plain words only, no links. One request per person per day. If it is urgent, give them the phone number instead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The customer's own name. | |
| town | No | Town or postal code where the work is. | |
| No | The customer's email address. Give this or phone. | ||
| phone | No | The customer's phone number, ten digits. Give this or email. | |
| details | Yes | What they need, in the customer's own terms. Plain text, no links, 800 characters at most. | |
| service | No | What they need: flooring = flooring; garage-doors = garage doors; carpet-cleaning = carpet and upholstery cleaning; renovations = renovations. | |
| preferred_time | No | When they would like to be contacted or visited, if they said. | |
| consent_to_contact | Yes | Must be true: the customer has asked to be contacted by this business about this request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses a real-world side effect: 'This sends a REAL message to a real small business.' It also warns against inventing contact details and imposes a rate limit ('One request per person per day'), which is useful behavioral context for a non-idempotent action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the core action, followed by guardrails and an urgent-case fallback. Every sentence carries essential information and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that sends real-world messages, the description covers prerequisites, content restrictions, rate limiting, and an alternative for urgent situations. Although there is no output schema, the operational guidance is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all 8 parameters (100% coverage), so the description does not need to explain each field. It reinforces the need for genuine contact details and consent, but it adds little field-level meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and result: 'Send a homeowner's request to 905 Trades so one contractor for that trade and town calls them back.' This clearly identifies the tool's function and distinguishes it from the read-only sibling tools like search and get_business_facts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit trigger conditions: 'call it only when the person has clearly asked to be contacted by 905 Trades and has given you their own name and their own phone number or email.' It also names a concrete alternative for urgent cases: 'give them the phone number instead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch 905 TradesARead-onlyIdempotentInspect
Keyword search over the pages of the 905 Trades website. Returns page ids, titles and canonical URLs. Use fetch with an id to read a page.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Plain words to look for, for example "broken spring" or "vinyl plank basement". |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, covering the safety profile. The description adds useful scoping context (searches pages of the site) and return fields, but it does not disclose result limits, ranking behavior, or empty-result handling, which would add further transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core purpose, then states return values and the follow-up action, with every sentence earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter search tool with full schema coverage, a readOnly annotation, and an output schema, the description covers everything needed to invoke it correctly. The inclusion of the fetch follow-up makes the surrounding workflow clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the query parameter already has clear guidance with examples like 'broken spring'. The description contributes no additional parameter semantics beyond 'keyword search', which the schema already conveys, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Keyword search over the pages of the 905 Trades website.' It also names the return type (page ids, titles, canonical URLs) and differentiates itself from the fetch sibling by explicitly routing to fetch for reading pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes this tool's role as a search step and tells the agent to 'Use fetch with an id to read a page,' giving a concrete cross-tool workflow. It does not mention exclusions for get_business_facts or request_quote, so it falls just short of explicit when-not-to-use guidance.
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.
4 tool updates
- First observed
fetch - First observed
get_business_facts - First observed
request_quote - First observed
search
Related MCP Connectors
Referral Flooring, Hamilton ON flooring installer: business facts, site search, quote requests.
41Garage Doorman, Grimsby ON residential garage door repair: business facts, site search, quotes.
41Commercial Garage Doorman, Hamilton area commercial door service: business facts and site search.
31Verified Canadian real-estate pros + housing data: prices, rates, land-transfer tax, rent-vs-buy.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables 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.-
- AlicenseNot gradedqualityBmaintenanceHome Services MCP by HireNimbus lets AI agents find, compare, and book verified local pros for handyman, renovation, HVAC, plumbing, electrical, and landscaping jobs in supported US metro markets.Apache 2.0
- FlicenseNot gradedqualityDmaintenanceProvides access to 50+ battle-tested home service business strategies for pricing, marketing, sales, operations, and hiring.-

LocalPro MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceProvides verified local trade and service business data (e.g., radon mitigation, foundation repair) to AI agents via tools like search_providers and list_niches.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.