MCP security checks — WARDEN and HISTOR
Scan MCP tool definitions for poisoning, look up server history, count tool-list tokens. Free.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp-security": {
"url": "https://modelmarket.dev/tools/mcp/security"
}
}
}Remote endpoints
https://modelmarket.dev/tools/mcp/securitystreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢warden_scan(tools, server)
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.
Input Schema
{
"type": "object",
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object"
},
"description": "The server's tools/list result: [{name, description, inputSchema, ...}]"
},
"server": {
"type": "object",
"description": "Optional {name, url} to label the verdict"
}
},
"required": [
"tools"
]
}🟢histor_check(endpoint, name)
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.
Input Schema
{
"type": "object",
"properties": {
"endpoint": {
"type": "string",
"description": "https URL of the MCP server"
},
"name": {
"type": "string",
"description": "Or its registry name, e.g. io.github.owner/server"
}
}
}🟢tool_list_cost(tools, server)
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.
Input Schema
{
"type": "object",
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object"
},
"description": "A tools/list result"
},
"server": {
"type": "string",
"description": "Or a server HISTOR observes: https endpoint, npm:<package>, pypi:<package> or registry name"
}
}
}🟢x402_check(x_payment, requirements, authorization, signature, network)
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').
Input Schema
{
"type": "object",
"properties": {
"x_payment": {
"type": "string",
"description": "The X-PAYMENT header (base64)"
},
"requirements": {
"type": "object",
"description": "The 402's accepts entry: payTo, amount, asset, network"
},
"authorization": {
"type": "object",
"description": "Instead of x_payment: from, to, value, validAfter, validBefore, nonce"
},
"signature": {
"type": "string",
"description": "With authorization: the 65-byte hex signature"
},
"network": {
"type": "string",
"description": "With authorization: base, base-sepolia, … or eip155:<id>"
}
}
}Community
Evidence