Skip to main content
Glama

Ironclad Verified

Server Details

Hire evidence-verified home-service contractors. Confirmed-job reviews only; rank is never buyable.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 7 of 7 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: searching, requesting, checking status, withdrawing, completing, rerouting, and retrieving contractor details. No functional overlap.

Naming Consistency5/5

All tool names follow the consistent verb_noun pattern with snake_case (e.g., check_request, complete_job, search_contractors). No deviations.

Tool Count5/5

7 tools cover the core workflow for contractor hiring (search, request, status, cancel, reroute, complete) without being too few or too many. Well-scoped.

Completeness4/5

Covers the main lifecycle: search, view, request, check, withdraw, reroute, complete. Missing a way to list all active requests, but the flow is covered with the withdrawRef pattern.

Available Tools

7 tools
check_requestCheck what happened to a requestA
Read-only
Inspect

Reads a request's status by its withdrawRef: sent / seen / contacted / booked / completed / withdrawn / unanswered, with the contractor's name, their ack (accepted/declined), whether a reroute is currently possible, and — after a move — the successor request's ref. No personal data is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
withdrawRefYesThe withdrawRef returned by request_contractor.
Behavior5/5

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

The annotation 'readOnlyHint: true' already indicates a safe read operation. The description goes beyond by detailing exactly what data is returned (statuses, contractor name, ack, reroute possibility, successor ref) and explicitly stating what is NOT returned ('No personal data is returned'). This fully informs the agent of behavioral traits without contradiction.

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?

The description is exactly two sentences: the first states the primary action and result, the second adds important exclusions. Every sentence earns its place; there is no fluff. The critical information is front-loaded, making it easy for an agent to quickly understand the tool's purpose.

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?

Given the tool's simplicity (one required parameter, no output schema, and comprehensive annotations), the description fully covers what the agent needs to know: what it does, what it returns, and what it does not return. No gaps or missing information are present for this level of complexity.

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?

The schema covers 100% of the single parameter, so the baseline is 3. The description adds meaning beyond the schema by specifying that the withdrawRef comes from 'request_contractor', which provides context on how to obtain the value and ensures correct usage. This extra guidance elevates the score above baseline.

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?

The description clearly states that the tool reads a request's status by its withdrawRef and enumerates all possible statuses, distinguishing it from sibling tools like 'request_contractor' (which creates requests) and 'withdraw_request' (which withdraws). The verb 'reads' plus the resource 'request's status' makes the purpose specific and unambiguous.

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?

The description implies when to use this tool: after obtaining a withdrawRef from 'request_contractor', to check the request's progress. It also clarifies that no personal data is returned, which guides expectations. However, it does not explicitly state when not to use it or contrast with sibling tools like 'get_contractor' or 'search_contractors', missing an opportunity to provide clearer usage boundaries.

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

complete_jobThe homeowner confirms the job is doneA
Idempotent
Inspect

When your user says the job is finished, this marks it complete on the contractor's record (with the homeowner's attestation) and returns the single-use review URL to hand to your user. IDEMPOTENT: re-calling returns the same URL. Only call when your user confirms the work is actually done — the review itself is theirs to write, on the page, in their own words.

ParametersJSON Schema
NameRequiredDescriptionDefault
withdrawRefYesThe withdrawRef returned by request_contractor.
Behavior4/5

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

Adds context beyond annotations: explains return of a single-use URL, that re-calling returns the same URL (consistent with idempotentHint), and that the review is written by the user. 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.

Conciseness5/5

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

Three sentences, each adding essential information: purpose, idempotency, and usage restriction. No wasted words; front-loaded with the main action.

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 single-parameter tool with full schema coverage and clear annotations, the description covers all necessary aspects: action, condition, return value, and behavioral property (idempotency).

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?

With 100% schema description coverage, the baseline is 3. The description clarifies the parameter's source ('The withdrawRef returned by request_contractor') but does not add substantial new meaning beyond the schema.

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?

The description uses a specific verb ('marks it complete') and identifies the resource ('contractor's record') and the return value ('single-use review URL'). It clearly distinguishes from siblings like 'withdraw_request' and 'search_contractors'.

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 states when to call: 'when your user confirms the job is finished' and restricts usage: 'Only call when your user confirms the work is actually done'. Also mentions idempotency to guide re-calling behavior.

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

get_contractorRead one contractor's full recordA
Read-only
Inspect

The full public record for one contractor by slug: Ironclad Score, tier, rating, confirmed-job count, and EVERY review (good and bad — reviews are never removed for being negative), plus links to the human-readable profile and the technical verified record.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe contractor's public slug from search_contractors.
Behavior5/5

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

Adds key behavioral details: includes every review (good and bad), never removed for negativity, and links to profile and verified record, complementing readOnlyHint annotation.

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?

Single, front-loaded sentence with all essential information, no extra fluff.

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?

Thoroughly lists returned fields and links, sufficient for a read tool with no output schema.

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 100% and description adds little beyond schema description; baseline 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?

Specific verb 'Read one contractor's full record' with resource and distinct from siblings like search_contractors.

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?

Implies usage when slug is available from search_contractors, but doesn't explicitly state when not to use.

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

request_contractorSend the homeowner's request to ONE contractorA
Idempotent
Inspect

Files the homeowner's request with the ONE contractor they picked. This is consent for that contractor (and nobody else) to contact them about this one job. REQUIRES homeowner_approved=true: only call after your user explicitly approves, with their real name and phone. Retry-safe: repeating the call within 24h returns the same request, never a duplicate. SAVE the withdrawRef from the result — it is your user's kill switch and status key.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe homeowner's real name.
needNoWhat the job is, in the homeowner's words.
slugYesThe chosen contractor's slug.
emailNoOptional. Used only for updates on this request and the post-job review link.
phoneYesThe homeowner's real phone number.
tradeNoOptional; defaults to the contractor's listed trade.
regionNoOptional; defaults to the contractor's listed area.
reroute_if_silentNoOptional, default false. The homeowner's standing consent: if the contractor declines or is silent past 24h, their request automatically moves to the next-ranked pro (still one contractor at a time). Ask before setting it.
homeowner_approvedYesMust be true: the homeowner explicitly approved sending this request.
Behavior5/5

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

Discloses idempotency (retry-safe within 24h), the need to save withdrawRef, and the effect of reroute_if_silent. Adds significant context beyond annotations.

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?

Concise, front-loaded with core purpose, followed by critical usage notes. Every sentence adds value with no redundancy.

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?

Covers all key aspects: purpose, prerequisites, idempotency, parameter details, and result usage (withdrawRef). Adequate for a tool with 9 parameters and no output schema.

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%, but description adds useful context like reroute_if_silent requiring user permission and email usage, justifying a score above baseline.

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?

The description clearly states it files the homeowner's request to exactly one contractor. It differentiates from sibling tools by specifying the singular target and consent aspect.

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?

Explicitly states when to call (after explicit approval with real name/phone) and a prerequisite (homeowner_approved=true). Does not explicitly contrast with siblings but context is clear.

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

reroute_requestMove a ghosted request to the next contractorAInspect

When check_request shows the contractor declined or stayed silent past 24 hours, this offers the request to the next evidence-ranked contractor for the same trade and region (nobody already tried; 3 contractors max per request). One pro at a time is preserved: the quiet contractor's request closes and can never earn that job's completion or review. Returns a NEW withdrawRef — replace the stored one. Only call with your user's go-ahead.

ParametersJSON Schema
NameRequiredDescriptionDefault
withdrawRefYesThe withdrawRef returned by request_contractor.
Behavior4/5

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

The description discloses side effects: the quiet contractor's request closes permanently and cannot earn completion/review. It also mentions returning a new withdrawRef and the need to replace the stored one. This adds context beyond the annotations (which are all false). However, there is a contradiction with the destructiveHint annotation being false while the description implies a destructive action (closing a request).

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?

The description is concise (4 sentences) and front-loaded with the purpose. Every sentence adds value: trigger condition, process, side effect, output instruction. No unnecessary words.

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?

For a tool with one parameter, no output schema, and minimal annotations, the description is fairly complete. It covers triggers, process, side effects, and output. However, it does not explain what happens if no more contractors are available (max 3 tried), which is a minor gap.

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?

The single parameter withdrawRef is described in the schema as 'The withdrawRef returned by request_contractor.' The description adds value by explaining that the tool returns a new withdrawRef and instructs the agent to replace the stored one. Schema coverage is 100%, so baseline is 3; the extra context raises the score.

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?

The description clearly states the action: 'Move a ghosted request to the next contractor.' It uses specific verbs ('offers', 'closes', 'returns') and describes the resource (ghosted request, next contractor). It distinguishes from sibling tools like withdraw_request (which likely just closes) and request_contractor (initial request).

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?

The description explicitly specifies when to use: 'When check_request shows the contractor declined or stayed silent past 24 hours.' It also mentions a prerequisite check and ends with 'Only call with your user's go-ahead.' This provides clear context, though it could add more about when not to use (e.g., if no more contractors available).

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

search_contractorsSearch verified contractorsA
Read-only
Inspect

Score-ranked contractor search. trade accepts consumer language ('water heater leaking' matches plumbing); region is a ZIP or city. Results include each contractor's slug (use it with get_contractor and request_contractor), Ironclad Score (null while a record is still building — that's honesty, not an error), rating, review counts, and the latest review. An empty list means no verified contractor covers that area yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
tradeYesWhat the homeowner needs, in their words (e.g. 'plumber', 'AC broken').
regionYesZIP code or city.
Behavior5/5

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

The description discloses important behavioral traits: Ironclad Score can be null while building a record (with honesty note), and empty list means no coverage. These go beyond the readOnlyHint annotation and add transparency.

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?

The description is concise at three sentences, front-loaded with the main purpose, and every sentence adds meaningful information without redundancy.

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?

Without an output schema, the description explains the result structure (slug, Ironclad Score, rating, review counts, latest review) and handles edge cases (null score, empty list). This is fully adequate for a search 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?

Both parameters are fully described in the schema (100% coverage). The description adds value by clarifying that 'trade' accepts consumer language and 'region' is a ZIP or city, enhancing semantic understanding.

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?

The description clearly states it's a 'Score-ranked contractor search' and explains the parameters and result fields. It distinguishes from siblings by mentioning the slug for use with get_contractor and request_contractor.

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?

The description implies when to use this tool (to find contractors) and mentions related tools (get_contractor, request_contractor) for subsequent steps. It does not explicitly state when not to use it or provide alternatives, but the context is clear.

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

withdraw_requestWithdraw a request (stop contact)A
Idempotent
Inspect

The homeowner's kill switch: withdraws the request identified by withdrawRef. The contractor loses access and contact stops. Use when your user changes their mind.

ParametersJSON Schema
NameRequiredDescriptionDefault
withdrawRefYesThe withdrawRef returned by request_contractor.
Behavior5/5

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

Beyond what annotations provide (idempotentHint=true, readOnlyHint=false, destructiveHint=false), the description explains concrete behavioral outcomes: contractor loses access and contact stops. This adds valuable transparency about side effects not captured in structured fields.

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?

Two sentences with no wasted words. The opening metaphor immediately conveys importance, followed by specific action and usage guidance. Every sentence earns its place.

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?

Given the tool's simplicity (1 required parameter, no output schema), the description fully covers purpose, usage, and behavioral outcomes. No gaps remain for an AI agent to interpret correctly.

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% and the description restates the parameter's purpose ('withdraws the request identified by withdrawRef') without adding new semantic details beyond the schema's description. Baseline of 3 is appropriate.

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?

The description uses a vivid metaphor ('homeowner's kill switch') and clearly states the action: withdraws the request, contractor loses access, contact stops. It distinguishes from sibling tools like check_request or complete_job, which serve different purposes.

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?

The description explicitly says 'Use when your user changes their mind,' providing clear context for appropriate usage. While it doesn't list alternatives or when not to use, the sibling tools cover different scenarios, and the instruction is sufficient for an MCP agent.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources