Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Action-level governance for AI agents -- control what they DO, not what they SAY
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"agent-guardrail": {
"command": "uvx",
"args": [
"agent-guardrail"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add agent-guardrail -- uvx agent-guardrailIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"agent-guardrail": {
"command": "uvx",
"args": [
"agent-guardrail"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"agent-guardrail": {
"type": "stdio",
"command": "uvx",
"args": [
"agent-guardrail"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Herausgeber (JarvisOnM4) ist nicht der Repo-Inhaber (eren-solutions); vielleicht hat jemand anderes ihn eingetragen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 0 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.2) kam vor 8 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, MCP Server Autocad Lisp Helper
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
High-precision static analysis and debug server for AutoCAD AutoLISP (.lsp) files.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Action-level governance for AI agents — control what they DO, not what they SAY.
AI agents are getting tool access. They can run shell commands, make API calls, read files, spend money. But most "guardrails" only filter what agents *say* — not what they *do*.
Real incidents:
You need action-level control. Not output filtering.
Agent Framework --> Agent Guardrail --> {allow, deny, require_approval}
--> Flight Recorder logs everything
Zero dependencies. Python stdlib only. SQLite for storage.
pip install agent-guardrail
agent-guardrail register "my-research-agent" --framework langchain
agent-guardrail apply-template moderate
agent-guardrail eval bash --target /workspace/test.sh # -> allow agent-guardrail eval bash --target /etc/shadow # -> deny agent-guardrail eval sudo # -> deny
from agent_guardrail import GuardrailStore, PolicyEngine, DEFAULT_POLICIES
store = GuardrailStore() # ~/.agent-guardrail/guardrail.db engine = PolicyEngine(store)
agent = store.register_agent("my-agent", framework="langchain")
store.save_policy({ "name": "moderate", "agent_id": agent["id"], "rules": DEFAULT_POLICIES"moderate", })
decision = engine.evaluate(agent["id"], "bash", target="/workspace/run.sh")
decision = engine.evaluate(agent["id"], "bash", target="/etc/shadow")
decision = engine.evaluate_and_record( agent_id=agent["id"], action_type="api_call", tool_name="openai_chat", cost_usd=0.05, session_id="session-123", )
from agent_guardrail import GuardrailStore, PolicyEngine
class GuardrailCallback: """Drop into any LangChain agent as a callback handler.""" def init(self, agent_id, db_path=None): self._engine = PolicyEngine(GuardrailStore(db_path=db_path)) self.agent_id = agent_id
def on_tool_start(self, serialized, input_str, **kwargs): decision = self._engine.evaluate_and_record( agent_id=self.agent_id, action_type="tool_call", tool_name=serialized.get("name"), target=input_str[:200], ) if decision.decision == "deny": raise PermissionError(f"Guardrail: {decision.reason}")
from agent_guardrail import GuardrailStore, PolicyEngine
def make_guardrail(agent_id, db_path=None): engine = PolicyEngine(GuardrailStore(db_path=db_path))
def check(task_output): decision = engine.evaluate_and_record( agent_id=agent_id, action_type="task_output", target=str(task_output)[:200], ) if decision.decision == "deny": return (False, f"Blocked: {decision.reason}") return (True, task_output) return check
from agent_guardrail import GuardrailStore, PolicyEngine
import functools
def guardrail(agent_id, action_type="function_call", db_path=None): engine = PolicyEngine(GuardrailStore(db_path=db_path)) def decorator(func): @functools.wraps(func) def wrapper(*args, **kwargs): target = str(args[0])[:200] if args else None decision = engine.evaluate_and_record( agent_id=agent_id, action_type=action_type, tool_name=func.name, target=target, ) if decision.decision == "deny": raise PermissionError(f"Guardrail: {decision.reason}") return func(*args, **kwargs) return wrapper return decorator
@guardrail("my-agent", action_type="bash") def run_command(cmd): ...
The library is for humans. The API is for agents.
An orchestrator running 5 sub-agents doesn't pip install — it calls an endpoint.
# Start the proxy server
pip install agent-guardrail[proxy] guardrail-proxy --port 8300 --admin-key YOUR_ADMIN_KEY
# Register an agent (admin)
curl -X POST http://localhost:8300/v1/agents \ -H "X-Admin-Key: YOUR_ADMIN_KEY" \ -d '{"name": "research-agent", "framework": "crewai"}'
curl -X POST http://localhost:8300/v1/evaluate \ -H "X-API-Key: gw_agent_key_here" \ -d '{ "agent_id": "...", "action_type": "bash", "tool_name": "shell", "target": "/etc/shadow", "cost_usd": 0.0 }'
Full API docs at http://localhost:8300/docs (Swagger UI).
Free tier included. Pay with Bitcoin when you need more.
| Tier | Evaluations | Price | Per Eval |
|---|---|---|---|
| Free | 100/day per agent | $0 | $0 |
| Starter | 1,000 | $10 | $0.010 |
| Growth | 5,000 | $40 | $0.008 |
| Scale | 25,000 | $150 | $0.006 |
Credits are prepaid and never expire. Admin-authenticated requests bypass billing entirely.
How it works:
# Check your balance
curl http://localhost:8300/v1/billing/balance \ -H "X-API-Key: gw_your_agent_key"
curl -X POST http://localhost:8300/v1/billing/checkout \ -H "X-API-Key: gw_your_agent_key" \ -d '{"pack_id": "pack_1000"}'
When free tier is exhausted and no credits remain, /v1/evaluate returns 402 Payment Required with a link to available packs.
Self-hosted billing: Set BLOCKONOMICS_API_KEY and BLOCKONOMICS_WEBHOOK_SECRET environment variables. Without these, billing is disabled and all evaluations proceed without metering (backward compatible).
{
"tool_allowlist": ["read_file", "write_file"], # Only these tools allowed "tool_denylist": ["sudo", "rm", "delete*"], # These tools always denied "target_allowlist": ["/workspace/*"], # Only these targets allowed "target_denylist": ["/etc/*", "*.env", "*.key"], # These targets always denied "network_allowlist": ["api.openai.com"], # Allowed network targets "network_denylist": ["*"], # Denied network targets "spend_cap_daily_usd": 25.0, # Daily spend limit "spend_cap_total_usd": 500.0, # Lifetime spend limit "require_approval": ["bash", "install"], # Human approval required "risk_threshold": 0.8, # Auto-approval gate }
Patterns support glob matching (*, ?, [abc]).
Kill switch? ──deny──> DENY
| Agent enabled? ──no──> DENY | Spend cap? ──exceeded──> DENY | Tool denylist? ──match──> DENY | Target denylist? ──match──> DENY | Approval required? ──match──> REQUIRE_APPROVAL | Risk threshold? ──exceeded──> REQUIRE_APPROVAL | Tool allowlist? ──not in list──> DENY | Target allowlist? ──not in list──> DENY | DEFAULT ──> ALLOW
+-------------------+ +------------------+ +-----------------+
| Agent Framework |---->| Billing Check |---->| Policy Engine | | (LangChain, | | (free tier / | | (evaluate) | | CrewAI, custom) | | credits) | +-----------------+ +-------------------+ +------------------+ | | v | +------------------------+ 402 if empty | Decision: | | allow / deny / | | require_approval | +------------------------+ | v +-----------------+ | Flight Recorder| | (SQLite) | +-----------------+
+-------------------+ +------------------+ | BTC Payment |---->| Blockonomics | | (checkout) | | (xpub-derived | +-------------------+ | addresses) | +------------------+ | webhook (status=2) | v +------------------+ | Credit Grant | | (billing_ledger)| +------------------+
| Feature | Agent Guardrail | Guardrails AI | NeMo Guardrails | DIY |
|---|---|---|---|---|
| Action-level control | Yes | No (output only) | No (dialogue only) | Manual |
| Spend caps | Yes | No | No | Manual |
| Kill switch | Yes | No | No | Manual |
| Flight recorder | Yes | No | No | Manual |
| Pay-per-eval billing | Yes (BTC) | No | No | Manual |
| Zero dependencies | Yes | No (many) | No (many) | Varies |
| Framework agnostic | Yes | LangChain-focused | LangChain-focused | Yes |
| Hosted API | Yes | Cloud only | No | Manual |
agent-guardrail agents # List registered agents
agent-guardrail register "name" # Register a new agent agent-guardrail kill # Emergency kill switch agent-guardrail unkill # Revoke kill switch agent-guardrail policies # List policies agent-guardrail apply-template agent-guardrail actions [--agent X] [--decision deny] agent-guardrail replay # Session replay agent-guardrail approvals # Pending approvals agent-guardrail approve # Approve action agent-guardrail deny # Deny action agent-guardrail eval [--target X] [--cost 0.5] agent-guardrail stats # Statistic
Nur der Anfang wird gezeigt; den Rest findest du im Repo