mcp-security-toolkit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mcp_server_auditA | Statically audit an MCP server Python source file. Enumerates tools registered with FastMCP-style Args: path: Absolute path to a Python file defining an MCP server. max_bytes: Reject files larger than this (default 5 MB). Prevents DoS via huge input. Pass a larger value if you need to audit a big monolith, but consider splitting it first. Returns:
Structured audit report (see AuditReport schema). Does NOT execute
the target file. Includes a |
| agent_tool_risk_auditA | Statically audit a single agent tool definition for schema-level risks. Accepts OpenAI function-calling, Anthropic tool-use, MCP tool, or a bare JSON Schema. Reports:
Args: schema: A tool definition as a dict. Returns: Structured AuditReport. Pure function, no I/O, no chaining. |
| prompt_injection_auditA | Statically analyze a system prompt / template for prompt-injection surface. Reports:
Pure function. No LLM call, no I/O, no chaining. Args: prompt: The system prompt or template text. Returns: Structured AuditReport. |
| owasp_llm_classifyA | Map a finding or observation to OWASP LLM Top 10 (2025) categories. Pure rule-based: keyword and regex patterns with weights per category.
Returns the top Args: observation: Free-form text describing a finding, scan result, bug report, threat model entry, or security observation. top_n: Number of matches to return (default 3). Returns:
ClassifyReport with ranked matches. If nothing matches, |
| jwt_inspectA | Decode and audit a JWT. Reports algorithm issues ( Args: token: The JWT string (three dot-separated base64url segments). check_weak_secrets: If True, attempt a small dictionary of common secrets against the signature for HS* algorithms. Default True. Returns: Structured inspection report (see JwtInspection schema). |
| http_diffA | Diff two HTTP responses with security-relevant findings. Inputs may be raw HTTP response strings (status line + headers + body)
or dicts shaped Reports:
Stateless. Two inputs in, one report out. |
| default_creds_lookupA | Return known default credentials for a vendor / product / service. Accepts a short product name ( Pure data lookup — no network, no scanning. Args: query: vendor / product / service identifier (case-insensitive). Returns:
LookupReport with |
| sensitive_files_listA | Return curated sensitive-path lists for a given tech stack. Args:
stack: Comma-separated stack hints. Supported keys:
common, php, wordpress, dotnet, java, node, python, k8s, docker, ci.
include_common: If True (default), always include the Returns:
FilesReport with |
| wordlist_genA | Generate a wordlist tailored to the target surface. Modes:
Pure function. No network. Args:
mode: One of Returns:
GenReport with |
| graphql_introspectA | Run a GraphQL introspection query against Single HTTP POST. Read-only. Will not mutate state on the server. By default, requests resolving to private / loopback / link-local /
cloud-metadata addresses are blocked (SSRF protection). Set
Redirects are disabled (an HTTP 3xx from the target raises
Residual risk: DNS rebinding. The pre-flight resolution and the actual HTTP request happen in separate syscalls and the OS may resolve the hostname twice. A hostile DNS that returns a public IP for the check and a private IP for the request can defeat the guard. For high-stakes environments, run this tool inside a network namespace / egress proxy that enforces address restrictions independently. Args:
url: Full GraphQL endpoint URL (e.g. Returns:
IntrospectReport summarizing the schema and security observations.
If the URL resolves to a private address and |
| phpggc_generateA | Generate a single PHP unserialize gadget chain via Args:
chain: Gadget chain identifier (e.g. Returns:
PhpggcReport with the generated payload (string). If |
| interactsh_registerA | Register a new interactsh callback URL via the Spawns interactsh-client detached, captures the assigned callback URL,
and persists a session descriptor for later polling. Returns a token
that pairs with Args:
server: interactsh server hostname (default Returns:
RegisterReport with |
| interactsh_pollA | Read captured OOB interactions for a previously-registered token. Args:
token: token returned by Returns: PollReport with all interactions captured so far. |
| interactsh_stopA | Stop a previously-registered interactsh-client session and clean up. Terminates the spawned Args:
token: token returned by Returns: {"stopped": bool, "log_removed": bool, "note": str | None} |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/x0base/mcp-security-toolkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server