mcp-guardrails-kit
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-guardrails-kitTriage ticket 1234 and flag any injection risks."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-guardrails-kit
A prompt-injection-aware tool gateway and MCP server, built as a reference implementation for a fictional internal ticket-triage assistant.
This is a portfolio project, not a real product. It exists to demonstrate a concrete, testable pattern for building guardrails around agentic tool use — permission tiers, untrusted-content quarantine, and heuristic injection detection — around a small but real MCP server. The domain (support ticket triage) is generic and interchangeable; the guardrail patterns are the point.
What it demonstrates
Tool permission tiers with explicit confirmation. Every tool is registered as either
read_onlyorsensitive. Sensitive tools (draft_reply,escalate_ticket) never execute a side effect until the caller passesconfirmed=True— every caller in this codebase routes through the gateway's singleinvoke()entry point by construction (seedocs/adr/0001-tool-permission-tiers.mdfor the honest caveat: this is a code-review convention, not a language-enforced boundary).Quarantine of untrusted external content.
fetch_external_pagereturns content fetched from a URL linked inside a ticket — a realistic prompt-injection vector. That content is wrapped and clearly delimited as data, never treated as instructions, before it is handed back to any caller or model.Heuristic injection detection with a verdict. Quarantined (and other) text is scanned for injection patterns and returns one of
ALLOW/FLAG/BLOCK. ABLOCKverdict replaces the payload with a safe refusal instead of the raw text (never a verbatim excerpt — even the scan's ownmatched_patternsare redacted to category labels before crossing a tool boundary). This is backed by a red-team test suite of known injection phrasings.Three independent scan gates, not just one. A
Supervisorwalks a triage → draft → review → escalate pipeline. A ticket's own subject/body — the most directly attacker-controlled input in the system — is scanned right after lookup; the drafted reply is re-scanned before escalation is considered; and the escalationreasona model proposes is scanned again beforeescalate_ticketis ever called. ABLOCKat any of the three halts the pipeline right there.
Related MCP server: production-grade-mcp-agentic-system
Install & run
pip install -e ".[dev]"
pytest
ruff check .No external services or API keys are required to install, test, or lint. See
Scope & non-goals below for what pip install -e ".[live]" adds.
Connecting the MCP server to a real client
After pip install -e . (or pip install mcp-guardrails-kit once published), the
mcp-guardrails-kit command is registered as a console entry point
(see [project.scripts] in pyproject.toml) and speaks the MCP stdio protocol. Point a
real MCP client at it — for example, Claude Desktop or Claude Code — with a config block
like:
{
"mcpServers": {
"guardrails-kit": {
"command": "mcp-guardrails-kit"
}
}
}For Claude Desktop, this goes in claude_desktop_config.json; for Claude Code, add it via
claude mcp add or the equivalent project-level MCP config. No arguments or environment
variables are required for the default (non-live) mode.
Scope & non-goals
Heuristic injection detection is defense in depth, not a guarantee. It is a regex/keyword-based scanner, not a model-backed classifier. It will miss novel or sufficiently obfuscated phrasings — see
docs/adr/0003-heuristic-injection-detection.mdfor the explicit tradeoff. The permission-tier and quarantine layers stay in effect even when detection fails; injection detection is one layer among three, not the only one.There is no real ticketing system behind this.
search_knowledge_baseandlookup_ticketread from small in-memory fixtures. There is no database, no external ticketing API integration, and no persistence.AnthropicModelClientis optional and live-only. It is gated behind theliveextra (pip install -e ".[live]") and is never imported or exercised by the test suite or CI — tests and the default install path have zero dependency on any external LLM API or network access.All data is in-memory and resets on restart. Drafts, escalations, and fetched external content are not persisted anywhere; restarting the server clears all state.
More
Architecture and data flow:
docs/architecture.mdDesign decisions:
docs/adr/
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceAn MCP server that provides safeguard capabilities to protect against prompt injection and unsafe tool calls.Last updated5MIT
- Alicense-qualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.Last updated54MIT
- Alicense-qualityBmaintenanceMCP server that provides tools to scan text and URLs for prompt injection attacks, protecting AI agents from adversarial inputs.Last updatedMIT
- Flicense-qualityFmaintenanceAn MCP server for prompt injection boundary enforcement that scans URL content using a tiered LLM model strategy.Last updated
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tcharod/mcp-guardrails-kit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server