subproof
Server Details
Subcontractor COI & paperwork tracking for general contractors — read-only demo tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct compliance query: summary totals, expiring documents, uninsured subs, search by name/type, and full report export. No two tools overlap in purpose, making agent selection straightforward.
Names follow a readable pattern with verbs like get, list, search, and export followed by domain objects. The mix of 'get' and 'list' is a minor stylistic inconsistency but remains predictable across the set.
Five tools is well-scoped for a subcontractor compliance reporting server, covering the essential read-only queries without unnecessary bloat or gaps in the core workflow.
The surface covers summary, expiring, uninsured, search, and export—enough for typical compliance monitoring and reporting. Minor gaps like per-sub detail drill-down or document status updates exist, but agents can work around them.
Available Tools
5 toolsexport_compliance_reportAInspect
Export the full subcontractor compliance report as CSV text (sub, document, due date, status, request history).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It mentions the action and output format but does not disclose any side effects, authorization requirements, data volume, or return behavior (e.g., whether the CSV is always available, if it may be truncated, or if it requires specific permissions). This is a significant gap for a tool with zero annotation coverage.
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 a single, well-structured sentence that front-loads the action and resource, then lists the specific fields. It contains no redundant or vague phrasing, and every word 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?
Given the tool's simplicity (no parameters, no output schema), the description covers the output format and fields, but it omits practical caveats such as data size limits, authentication requirements, or whether the export is always available. With zero annotations and no output schema, a bit more detail about the return type or potential risk (e.g., large data) would improve completeness.
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 no parameters, so there is nothing for the description to add beyond the schema. The baseline of 4 is appropriate because the description correctly omits parameter details that are irrelevant.
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 ('Export') and a defined resource ('the full subcontractor compliance report') along with the output format (CSV text) and the included fields. This makes the tool's purpose unmistakable and distinguishes it from sibling tools that retrieve summaries or specific subsets.
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 implies that this tool should be used when a complete, exportable report is needed, but it does not explicitly mention when to use this tool versus the siblings (e.g., get_compliance_summary for a summary, list_uninsured_subs for uninsured subs). No exclusion criteria or alternatives are given, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compliance_summaryAInspect
Get the subcontractor compliance summary: totals for tracked, not received, lapsed cover, lapsing this week, and awaiting check.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It clearly states the tool returns a summary of totals, which implies a read-only aggregation operation. However, it does not disclose whether the data is real-time, cached, or computed on demand, nor does it describe the output format. The description is accurate but minimal.
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 a single, well-structured sentence that front-loads the resource and then lists the exact data points. Every word earns its place; there is no fluff 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 zero-parameter, no-output-schema tool, the description is nearly complete. It tells the agent exactly what data will be returned. The only minor gap is the lack of explicit output format details (e.g., whether it's a JSON object with named fields), but the listed categories are sufficient for an agent to understand the result.
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 there is no parameter semantics burden. The description fully explains what the tool returns, which is the only semantic content an agent needs. Baseline 4 is appropriate for a no-parameter tool.
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 uses a specific verb ('Get') and a specific resource ('subcontractor compliance summary'), and enumerates the exact data points returned (totals for tracked, not received, lapsed cover, lapsing this week, awaiting check). This clearly distinguishes it from sibling tools like export_compliance_report or get_expiring_cover, which have different purposes.
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 implies this is the tool to call when you need a summary of compliance statuses, but it does not explicitly state when to use it versus alternatives like get_expiring_cover or list_uninsured_subs. The listed data points help an agent infer the use case, but there is no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_expiring_coverAInspect
List subcontractor documents expiring within the next N days (default 30) so certificates can be renewed before a sub goes uncovered.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Look-ahead window in days (default 30). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly discloses the core filtering behavior and the default look-ahead window, but does not specify what fields are returned, whether already-expired documents are included, or whether the operation is purely read-only.
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?
One tightly worded sentence that places the core behavior first and adds a meaningful purpose clause. No filler or redundant restatement.
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 tool with one optional parameter and no output schema, the description is nearly complete: it conveys the action, the parameter semantics, and the reason to call it. A brief note on expected return contents would make it fully complete.
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% for the single 'days' parameter, and the schema already explains the look-ahead window and default. The description restates this without adding deeper semantic context, matching the baseline.
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 uses a specific verb ('List') and resource ('subcontractor documents expiring within the next N days') and states the operational intent (renewal before coverage lapses). It is immediately distinguishable from siblings like list_uninsured_subs because it targets upcoming expirations rather than currently uncovered subs.
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 gives clear context for when to call the tool: when proactively identifying documents that need renewal before a sub goes uncovered. It does not explicitly name alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_uninsured_subsAInspect
List subcontractors with lapsed or missing insurance documents — the ones creating liability exposure right now. Most dangerous first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose a key behavioral trait (ordering: 'most dangerous first') as well as the scope of items included (lapsed or missing insurance), which is useful. However, it does not mention whether the tool will also return sorted-by-danger or any other read-only guarantee, return format, or whether the data is live. The description is acceptable but not rich enough to carry the full burden with no 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 one sentence with a front-loaded verb and resource, followed by a single, purposeful clause about ordering. Every word earns its place—it identifies the subject, defines the selection criteria, and highlights the output ordering. No filler, no repetition of the tool name.
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 zero-parameter read-only list tool without an output schema, the description captures the essential behavior: what is listed and the ordering. It does not describe the response shape or limits, but the simplicity of the operation makes that less critical. It might benefit from a brief note on whether 'lapsed' means expired in the insurance context, but it is otherwise sufficient for an agent to call 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 tool has zero parameters, so the baseline is 4. The description adds no parameter-specific semantics (there are none to document), but it reinforces the conceptual basis that the tool is a self-contained listing operation with no inputs. No additional parameter clarification is necessary.
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 identifies a specific verb ('list') and resource ('subcontractors with lapsed or missing insurance documents'), and adds a clear scoping criterion ('the ones creating liability exposure right now') that distinguishes it from siblings like get_expiring_cover or get_compliance_summary. The ordering ('most dangerous first') adds further precision. An agent can distinguish this tool from its siblings without inspecting the schema.
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 implies a usage context — when you need to see subcontractors that currently pose liability risk — but does not explicitly name alternative tools or provide when-not-to-use guidance. It clearly telegraphs that this is for identifying immediate exposure, which is helpful, but it leaves the distinction from get_expiring_cover to be inferred. This is clear context without explicit exclusions, so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_sub_docsAInspect
Search subcontractor documents by sub name or document type. Returns matching records with expiry date and status (on file, needs check, not received, lapsed).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Text to match against subcontractor or document type (case-insensitive; shorthand like "COI" or "workers comp" works). Omit to list everything. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided and no output schema, the description carries the disclosure burden. It does this well by stating the search behavior and enumerating the returned status values ('on file, needs check, not received, lapsed'), which are not present in the input schema. It does not mention pagination or edge-case behavior, but for a simple search tool this is acceptable.
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 a compact two-sentence definition, front-loading the search criteria and then listing the output fields. Every clause adds value and no filler or irrelevant detail is present.
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 single-optional-parameter search tool with no output schema, the description is mostly complete: one parameter is covered by the schema, and the description explains what will be returned. It is missing only minor conveniences such as return size or ordering, which are not necessary for making a correct call.
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 coverage is 100%, and the single 'query' parameter already has a thorough schema description covering case-insensitivity, shorthand, and omitted-query behavior. The tool description repeats some of that information but doesn't need to add much, so the baseline of 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 uses a specific verb ('Search') with a clear resource ('subcontractor documents') and the two matching criteria ('sub name or document type'). It also states the returned fields, making its objective and scope immediately distinct from siblings like get_compliance_summary, export_compliance_report, get_expiring_cover, and list_uninsured_subs.
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 implies the tool should be used when an agent wants to find subcontractor documents by name or document type, but it does not explicitly route to alternatives such as get_expiring_cover or list_uninsured_subs. There is no 'when to use instead' guidance, so the agent must infer the boundary from sibling names and the schema.
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.
5 tool updates
- Changed
export_compliance_report1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_compliance_summary1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_expiring_cover2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
list_uninsured_subs1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
search_sub_docs2 fields changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema" - removed
Input schema / additionalPropertiesRemoved value: -false
5 tool updates
- First observed
export_compliance_report - First observed
get_compliance_summary - First observed
get_expiring_cover - First observed
list_uninsured_subs - First observed
search_sub_docs
Related MCP Connectors
Vendor document & expiry tracking for septic operators — read-only live demo board tools.
Provider credentialing & payer-enrollment tracking for medical practices — read-only demo tools.
Forklift & aerial-lift compliance records for warehouses — read-only demo tools.
DOT driver qualification file tracking for small motor carriers — read-only demo tools.
Related MCP Servers
- AlicenseAqualityDmaintenanceReal-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.449 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to query live construction project data such as RFIs, submittals, budget variance, daily logs, punch lists, and inspection checklists.-
- 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 gradedqualityNot gradedmaintenanceProvides read-only access to TrustLayer's public API, enabling users to query and retrieve data about parties, documents, projects, and other TrustLayer entities through MCP-compatible tools.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.