twothumbs
Server Details
Verifies AI agent work end to end: real artifacts and outcomes checked, not self-reported success.
- Status
- Healthy
- Uptime
- 60.3% over 57 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- asselwan/twothumbs-mcp
- GitHub Stars
- 0
- Server Listing
- TwoThumbs MCP
TDQS
Scored across 3 tools
Each tool has a distinct purpose: list_surfaces for reading configuration, redeem_code for obtaining an API key, and run_verdict for performing the core action. No overlap or ambiguity.
All tools follow a consistent verb_noun snake_case pattern (list_, redeem_, run_), making the API predictable and easy to navigate.
3 tools is appropriately scoped for a focused utility server. Each tool is non-trivial and contributes to a clear workflow, with no redundancy or bloat.
The core workflow (listing surfaces, redeeming codes, running verdicts) is covered, but some related operations like retrieving past verdicts or managing surfaces are absent. Still, the surface seems functional for its intended purpose.
Available Tools
3 toolslist_surfacesAInspect
List configured surfaces and target URLs
| 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. It indicates a read-only list operation, which is non-destructive, but does not elaborate on output format or any side effects. For a simple list tool, this is adequate 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, concise sentence with no wasted words or redundant information. It fully conveys the essential purpose in an efficient manner.
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?
The tool is very simple with no parameters and no output schema. The description clearly states what is listed, which is largely sufficient. It could benefit from a hint about the return structure, but given the simplicity, it is nearly 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?
The tool has zero parameters, so the schema is complete by default. The description adds no parameter details but none are needed, giving the baseline of 4 for empty parameter sets.
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 lists configured surfaces and target URLs, with a specific verb and resource. This distinguishes it from sibling tools like redeem_code and run_verdict, which perform different actions.
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 no guidance on when to use this tool versus alternatives or any prerequisites. It merely states the function without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redeem_codeAInspect
Redeem a promotional code for a new API key
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that it redeems a promotional code, with no mention of side effects (e.g., code consumption), idempotency, error conditions, or authorization requirements. This is insufficient for a mutation type tool.
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 concise sentence, containing no filler or redundant content. It is front-loaded with the action and clearly conveys the tool's purpose without unnecessary detail.
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 simplicity of the tool (one parameter, no output schema, no annotations), the description is minimally viable but lacks important contextual information such as what the tool returns exactly (the API key), how errors are surfaced, or any caveats about code validity. It does not fully specify the complete behavior for an AI agent.
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 0%, and the only parameter is 'code'. The description adds meaning by clarifying that it is a 'promotional code', which helps the agent understand the parameter's role. However, it does not provide additional format details or source context beyond the schema constraints.
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 ('Redeem') and identifies the resource ('a promotional code') and the outcome ('for a new API key'). This clearly distinguishes it from the sibling tools list_surfaces and run_verdict, which perform different operations.
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 usage context (when you have a promotional code) but does not explicitly state when to use this tool versus alternatives or mention any prerequisites or exclusions. There is no direct guidance about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_verdictDInspect
Run a full-cycle web verdict
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| surface | No | ||
| register | No | ||
| max_pages | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only says 'Run a full-cycle web verdict.' It does not state whether this is a read operation, whether it has side effects, what authentication is needed, or how long it runs. 'Full-cycle' hints at multi-step behavior but reveals no specifics.
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 sentence with no filler, but this is under-specification rather than conciseness. It does not earn its place because it adds no meaning beyond the tool's name and leaves the agent without essential context.
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 complexity (4 parameters, no annotations, no output schema), the description is radically incomplete. It fails to explain what a verdict is, how the parameters relate, what the output looks like, or what 'full-cycle' means in practice, making correct invocation nearly impossible.
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 has four parameters (url, surface, register, max_pages) with zero descriptions, and the tool description mentions none of them. An agent cannot infer that url is the target webpage, surface is likely a browsing environment, register denotes a mode, or max_pages limits crawling.
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 'Run a full-cycle web verdict' provides a verb and a resource, but 'verdict' is undefined jargon and 'full-cycle' does not clarify the operation. It does not distinguish itself from sibling tools like list_surfaces or redeem_code, and an agent would not know what a 'web verdict' is.
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?
No guidance is given about when to use this tool, what prerequisites exist, or when to prefer alternatives. The description is silent on use cases, exclusions, or dependencies on other tools such as list_surfaces.
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 tool update
- Changed
run_verdict1 field changed- removed
Input schema / requiredRemoved value: -[ - "url" -]
3 tool updates
- First observed
list_surfaces - First observed
redeem_code - First observed
run_verdict
Related MCP Connectors
Preflight QA for AI-agent deliverables with structured verdicts and repair guidance.
Independent verification of AI agent output before you pay, with a signed attestation and receipt.
21Verified AI-agent outcomes: secret scanning, JSON cleanup, dedupe, anomaly and schema checks.
Check an AI agent you did not build: is it who it claims, inside its mandate, and what's its record
31
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to replace self-reported done checkboxes with verified, evidence-based completion tracking, using automated FAIL_TO_PASS/PASS_TO_PASS tests, mandatory mutation checking, and explicit human/AI reviews when automated proof is impossible.1MIT
- AlicenseNot gradedqualityCmaintenanceGives AI coding agents a closed-loop verification cycle for visual, audio, and video output, with enforcement hooks that make verification mandatory.Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to obtain permission before acting and verify afterward against destination systems' own records, confirming whether the permitted work actually happened.577 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables deterministic verification of AI agent decisions and actions, providing PASS/FAIL/ABSTAIN verdicts with replayable proofs and an optional signed receipt ledger.5 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.