MCP security checks — WARDEN and HISTOR
Server Details
Scan MCP tool definitions for poisoning, look up server history, count tool-list tokens. Free.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- alexar76/warden
- GitHub Stars
- 0
- Server Listing
- warden
TDQS
Scored across 4 tools
Each tool targets a distinct concern: provenance/history (histor_check), token cost (tool_list_cost), security scanning (warden_scan), and payment signature verification (x402_check). The only mild overlap is that histor_check and tool_list_cost both answer from HISTOR about an MCP server's tool set, but their descriptions clearly separate change history from cost.
All names are snake_case and follow a service/scope prefix pattern (histor_, warden_, x402_), with two ending in _check and others in _scan/_cost. Mostly predictable, with minor deviation in tool_list_cost, which lacks a service prefix.
Four tools for a focused check suite covering two named systems (WARDEN, HISTOR) plus x402 payments is well-scoped. Each tool earns its place and none appears redundant.
The suite covers the core read-only checks: history, cost, scanning, and payment validation. Minor gaps exist, such as enumerating the servers HISTOR observes or retrieving the WARDEN threat list, but these are workable around.
Available Tools
4 toolshistor_checkServer history (HISTOR)ARead-onlyIdempotentInspect
Look up an MCP server in HISTOR, a public append-only log of MCP tool sets: when its tool set was first pinned, how often it changed, and what the pattern scan found. HISTOR answers from its own observations and never contacts the server.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Or its registry name, e.g. io.github.owner/server | |
| endpoint | No | https URL of the MCP server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavior: the data source is an append-only log answered from HISTOR's own observations with no contact with the target server — useful context that qualifies the openWorldHint and tells the agent results may be stale relative to live state.
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 sentences, front-loaded with the action and the resource, then the behavioral qualifier. No filler, no repetition of the title.
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?
With no output schema, the description usefully enumerates the three things a lookup returns, which is exactly what the agent needs. The one gap: both parameters are optional and the description never says that at least one identifier (name or endpoint) must be supplied to find anything.
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 both parameters carry their own descriptions (including the registry-name example), so the schema does the heavy lifting. The prose adds no format or selection guidance beyond that, making the baseline 3 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?
States a specific verb ('look up') and resource (an MCP server in HISTOR), and even enumerates the payload it returns: first-pinned time, change frequency, and pattern-scan findings. It does not, however, distinguish itself from the siblings (warden_scan in particular sounds like the active-scan counterpart), leaving that differentiation to inference.
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?
Usage is implied by the lookup semantics, and the sentence 'HISTOR answers from its own observations and never contacts the server' hints at when this is preferable to a live scan. But there is no explicit when-to-use, when-not, or named alternative among tool_list_cost, warden_scan, or x402_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_list_costTool list token costBRead-onlyIdempotentInspect
How many tokens an MCP server's tool list adds to every model request, what that costs per 1,000 requests, the heaviest tools, and where it sits among 18,204 packages and 16,170 remote servers. Send a tools/list or name a server HISTOR observes.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | No | A tools/list result | |
| server | No | Or a server HISTOR observes: https endpoint, npm:<package>, pypi:<package> or registry name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered without the description. The text adds scale context (indexed across 18,204 packages and 16,170 remote servers), which is useful, but omits behavior an agent would want: whether naming a server triggers a live network lookup, any rate limits, and what happens with no argument at all.
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 sentences with no filler, and the output inventory is front-loaded. The first sentence is a dense four-item enumeration that reads slightly run-on, but nothing is wasted.
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 read-only analysis tool with no output schema and 0 required parameters, the description does state the classes of result returned. The notable gap is the all-optional input surface: it never explains the default behavior when neither tools nor server is provided, which is the exact ambiguity an agent is most likely to hit.
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 two parameters are already documented there ("A tools/list result", "Or a server HISTOR observes: https endpoint, npm:<package>..."). The description's "Send a tools/list or name a server" only restates the schema's field meanings rather than adding format or precedence detail, so the baseline 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 specifies the analysis performed (token cost an MCP server's tool list adds to every request, cost per 1,000 requests, heaviest tools, rank) which is specific enough for an agent to know exactly what this produces. It doesn't name or contrast itself against any sibling (histor_check, warden_scan, x402_check), so differentiation is left to inference.
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?
"Send a tools/list or name a server HISTOR observes" tells the agent the two accepted input paths, which is real invocation guidance. However it never says when to reach for this tool versus the sibling checks, nor what happens if neither input is supplied (both parameters are optional).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
warden_scanScan tool definitions (WARDEN)ARead-onlyIdempotentInspect
Scan an MCP server's tools/list with WARDEN, the open-source MCP firewall: static rules and a threat list over every name, description, schema and annotation. Returns allow or block and each finding with its rule and severity. Quoted fragments of the scanned text are left out of the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| tools | Yes | The server's tools/list result: [{name, description, inputSchema, ...}] | |
| server | No | Optional {name, url} to label the verdict |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the verdict is allow/block, findings carry a rule and severity, detection is rule/threat-list based, and quoted fragments of the scanned text are deliberately omitted from the answer.
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 sentences, front-loaded with the action and mechanism, with the return shape and the output-omission caveat following. No filler or restatement of the title.
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?
With no output schema, the description carries the return-value burden and does so well: allow/block verdict plus per-finding rule and severity, and it explains why no quoted fragments appear. It stops short of noting limits on input size or how nested tool objects are traversed, a minor gap.
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%, so both 'tools' and 'server' are already documented in the schema. The description reinforces what is being scanned (name, description, schema, annotation) but adds no syntax, shape, or constraint detail beyond the schema, so the baseline 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?
States a specific verb (Scan) and resource (an MCP server's tools/list) and names the detection mechanism (static rules + threat list over name, description, schema, annotation). It is unmistakable against siblings like histor_check, tool_list_cost, and x402_check, which address unrelated concerns.
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?
Usage is implied by the object of the scan (a server's tools/list result passed as input), so an agent can infer when to reach for it. However, there is no explicit when-to-use or when-not guidance and no named alternative, and the sibling list offers no near-twin to route away from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_checkx402 payment checkARead-onlyIdempotentInspect
Check a signed x402 USDC payment before submitting it: recovers the EIP-712 signer, runs USDC's own checks and the seller's terms, and when the signature fails names the domain it was really made for (e.g. Base Sepolia's 'USDC' used on Base, where USDC is 'USD Coin').
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | With authorization: base, base-sepolia, … or eip155:<id> | |
| signature | No | With authorization: the 65-byte hex signature | |
| x_payment | No | The X-PAYMENT header (base64) | |
| requirements | No | The 402's accepts entry: payTo, amount, asset, network | |
| authorization | No | Instead of x_payment: from, to, value, validAfter, validBefore, nonce |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description goes further by disclosing the actual mechanics (recovers the EIP-712 signer, runs USDC's and the seller's checks) and the failure behavior, including naming the EIP-712 domain mismatch with a concrete Base Sepolia example. It stops short of stating whether a successful check returns anything or whether it ever forwards the payment.
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?
A single dense sentence that front-loads the action and then the mechanism, with zero filler. It is packed tightly enough that the clause chain ('recovers…, runs…, and when the signature fails names…') takes a moment to parse, but nothing is wasted.
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?
With no output schema, the description compensates by explaining the diagnostic output on signature failure, which is the most decision-relevant return for an agent. Combined with schemas that document both input modes and all five optional params, an agent has enough to invoke it, though the shape of a successful result is left unspecified.
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%, so all five parameters (network, signature, x_payment, requirements, authorization) are already documented, including the two mutually exclusive input modes. The description adds no parameter-level detail, so the baseline 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?
States a specific verb and resource ('Check a signed x402 USDC payment') plus the precise moment it applies ('before submitting it'). An agent can immediately distinguish this pre-flight validator from the unrelated siblings (histor_check, tool_list_cost, warden_scan).
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 phrase 'before submitting it' clearly establishes the usage context: this is a pre-submission validation step, not the submission itself. It does not name an alternative tool or an explicit when-not condition, so it falls short of a 5.
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
histor_check - First observed
tool_list_cost - First observed
warden_scan - First observed
x402_check
Related MCP Connectors
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
Audit MCP servers for tool poisoning and shadowing. Scan a remote server by URL or paste its tools.
Free, no-key MCP server: token estimates, JSON Schema conversion, MCP configs, tool search.
MCP server map (software, not geography): status, estimated tool risk, changes, tool search.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceDiagnoses MCP server token costs, finds duplicates, grades efficiency, and generates optimization reports.17 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to look up and search servers from the official MCP registry, probe any server live for availability, protocol, auth, tools and context-token cost, and retrieve registry-wide statistics. Also supplies a CLI and GitHub Action that measure how many tokens your own configured servers' tool definitions consume against a budget.MIT
- AlicenseNot gradedqualityBmaintenanceEnables an agent or MCP client to scan MCP server configs and AI-agent tool manifests on demand, exposing tools that list detection rules and report hidden prompt injections, data-exfiltration attempts, embedded secrets, deceptive Unicode, unpinned packages and shell-launching tools. Each finding comes with a severity and location so risky tool descriptions can be caught before an attacker exploits them.Apache 2.0

Glimind MCP serverofficial
AlicenseNot gradedqualityBmaintenanceEnables agents to discover and route tasks to public MCP tools, check live reliability, find working alternatives, audit server agent-readiness, and scan tool definitions for poisoning.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.