guard-core-mcp
<p align="center">
<a href="https://guard-core.github.io/guard-core/latest/">
<img src="https://guard-core.github.io/guard-core/latest/assets/guard_core_legend.svg" alt="Guard Core">
</a>
</p>
___
<p align="center">
<strong>Model Context Protocol server for the Guard ecosystem: config validation, docs search, and corpus tooling for agents and developers.</strong>
</p>
<p align="center">
<a href="https://badge.fury.io/py/guard-core-mcp">
<img src="https://badge.fury.io/py/guard-core-mcp.svg?cache=none&icon=si%3Apython&icon_color=%23008cb4" alt="PyPiVersion">
</a>
<a href="https://guard-core.github.io/guard-core-mcp/latest/">
<img src="https://img.shields.io/badge/docs-latest-0080ff.svg" alt="Docs">
</a>
<a href="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/release.yml">
<img src="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/release.yml/badge.svg" alt="Release">
</a>
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License">
</a>
<a href="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/ci.yml">
<img src="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/ci.yml/badge.svg" alt="CI">
</a>
<a href="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/code-ql.yml">
<img src="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/code-ql.yml/badge.svg" alt="CodeQL">
</a>
</p>
<p align="center">
<a href="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/pages/pages-build-deployment">
<img src="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/pages/pages-build-deployment/badge.svg?branch=gh-pages" alt="PagesBuildDeployment">
</a>
<a href="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/docs.yml">
<img src="https://github.com/Guard-Core/guard-core-mcp/actions/workflows/docs.yml/badge.svg" alt="DocsUpdate">
</a>
<img src="https://img.shields.io/github/last-commit/Guard-Core/guard-core-mcp?style=flat&logo=git&logoColor=white&color=0080ff" alt="last-commit">
</p>
<p align="center">
<img src="https://img.shields.io/badge/Python-3776AB.svg?style=flat&logo=python&logoColor=white" alt="Python"> <img src="https://img.shields.io/badge/MCP-1B1B1B.svg?style=flat" alt="MCP">
<a href="https://pepy.tech/project/guard-core-mcp">
<img src="https://pepy.tech/badge/guard-core-mcp" alt="Downloads">
</a>
</p>
<p align="center">
<a href="https://glama.ai/mcp/servers/Guard-Core/guard-core-mcp">
<img src="https://glama.ai/mcp/servers/Guard-Core/guard-core-mcp/badges/score.svg" alt="guard-core-mcp MCP server - score on Glama">
</a>
</p>
<p align="center">
<a href="https://glama.ai/mcp/servers/Guard-Core/guard-core-mcp">
<img width="380" src="https://glama.ai/mcp/servers/Guard-Core/guard-core-mcp/badges/card.svg" alt="guard-core-mcp MCP server - quality and maintenance score on Glama">
</a>
</p>
<p align="center">
<a href="https://guard-core.com">Website</a> ·
<a href="https://guard-core.github.io/guard-core-mcp/latest/">Docs</a> ·
<a href="https://playground.guard-core.com">Playground</a> ·
<a href="https://app.guard-core.com">Dashboard</a> ·
<a href="https://discord.gg/ZW7ZJbjMkK">Discord</a>
</p>
---
## Ecosystem
Guard Core is the Python engine. Framework adapters are thin wrappers that translate native request/response types into Guard Core's protocols. The telemetry agents ship security events and metrics to the monitoring backend. Parallel engine implementations exist for Go, PHP, TypeScript (on npm), and Rust (on crates.io) - all ports of the same reference semantics, conformance-tested against the shared adversarial corpus.
### Python
| Package | Role | PyPI |
|---|---|---|
| [guard-core](https://github.com/Guard-Core/guard-core) | Framework-agnostic security engine | [](https://pypi.org/project/guard-core/) |
| [guard-agent](https://github.com/Guard-Core/guard-agent) | Telemetry agent | [](https://pypi.org/project/guard-agent/) |
| [fastapi-guard](https://github.com/Guard-Core/fastapi-guard) | FastAPI / Starlette adapter | [](https://pypi.org/project/fastapi-guard/) |
| [flaskapi-guard](https://github.com/Guard-Core/flaskapi-guard) | Flask adapter | [](https://pypi.org/project/flaskapi-guard/) |
| [djapi-guard](https://github.com/Guard-Core/djapi-guard) | Django adapter | [](https://pypi.org/project/djapi-guard/) |
| [tornadoapi-guard](https://github.com/Guard-Core/tornadoapi-guard) | Tornado adapter | [](https://pypi.org/project/tornadoapi-guard/) |
### Go
Go modules published via GitHub releases. **Production-ready.**
| Package | Role | Release |
|---|---|---|
| [guard-core-go](https://github.com/Guard-Core/guard-core-go) | Go engine | [](https://github.com/Guard-Core/guard-core-go/releases) |
| [nethttp-guard](https://github.com/Guard-Core/nethttp-guard) | net/http adapter | [](https://github.com/Guard-Core/nethttp-guard/releases) |
| [gin-guard](https://github.com/Guard-Core/gin-guard) | Gin adapter | [](https://github.com/Guard-Core/gin-guard/releases) |
| [echo-guard](https://github.com/Guard-Core/echo-guard) | Echo (v4) adapter | [](https://github.com/Guard-Core/echo-guard/releases) |
| [fiber-guard](https://github.com/Guard-Core/fiber-guard) | Fiber (v3) adapter | [](https://github.com/Guard-Core/fiber-guard/releases) |
| [guard-agent-go](https://github.com/Guard-Core/guard-agent-go) | Telemetry agent | [](https://github.com/Guard-Core/guard-agent-go/releases) |
### PHP
Published on [Packagist](https://packagist.org/) under the `rennf93` vendor. **Production-ready.**
| Package | Role | Packagist |
|---|---|---|
| [guard-core-php](https://github.com/Guard-Core/guard-core-php) | PHP engine | [](https://packagist.org/packages/rennf93/guard-core-php) |
| [laravel-guard](https://github.com/Guard-Core/laravel-guard) | Laravel adapter | [](https://packagist.org/packages/rennf93/laravel-guard) |
| [symfony-guard](https://github.com/Guard-Core/symfony-guard) | Symfony adapter | [](https://packagist.org/packages/rennf93/symfony-guard) |
| [psr15-guard](https://github.com/Guard-Core/psr15-guard) | PSR-15 adapter | [](https://packagist.org/packages/rennf93/psr15-guard) |
| [slim-guard](https://github.com/Guard-Core/slim-guard) | Slim 4 adapter | [](https://packagist.org/packages/rennf93/slim-guard) |
| [guard-agent-php](https://github.com/Guard-Core/guard-agent-php) | Telemetry agent | [](https://packagist.org/packages/rennf93/guard-agent-php) |
### TypeScript / JavaScript
Published under the [`@guardcore`](https://www.npmjs.com/org/guardcore) npm scope; source in the [guard-core-ts](https://github.com/Guard-Core/guard-core-ts) monorepo. **Production-ready.**
| Package | Role | npm |
|---|---|---|
| | [@guardcore/core](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/core) | Core engine | [](https://www.npmjs.com/package/@guardcore/core) |
| [@guardcore/express](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/express) | Express adapter | [](https://www.npmjs.com/package/@guardcore/express) |
| [@guardcore/nestjs](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/nestjs) | NestJS adapter | [](https://www.npmjs.com/package/@guardcore/nestjs) |
| [@guardcore/fastify](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/fastify) | Fastify adapter | [](https://www.npmjs.com/package/@guardcore/fastify) |
| [@guardcore/hono](https://github.com/Guard-Core/guard-core-ts/tree/master/packages/hono) | Hono (edge) adapter | [](https://www.npmjs.com/package/@guardcore/hono) |
| [guardagent](https://github.com/Guard-Core/guard-agent-ts) | Telemetry agent | [](https://www.npmjs.com/package/guardagent) |
### Rust
Published on crates.io. **Production-ready.**
| Package | Role | crates.io |
|---|---|---|
| [guard-core-engine](https://github.com/Guard-Core/guard-core-rs) | Core engine crate | [](https://crates.io/crates/guard-core-engine) |
| [guard-core-rs](https://github.com/Guard-Core/guard-core-rs) | Facade crate (consumer entry point) | [](https://crates.io/crates/guard-core-rs) |
| [actix-guard-rs](https://github.com/Guard-Core/actix-guard-rs) | Actix Web adapter | [](https://crates.io/crates/actix-guard-rs) |
| [axum-guard-rs](https://github.com/Guard-Core/axum-guard-rs) | Axum adapter | [](https://crates.io/crates/axum-guard-rs) |
| [tower-guard-rs](https://github.com/Guard-Core/tower-guard-rs) | Tower adapter | [](https://crates.io/crates/tower-guard-rs) |
| [rocket-guard-rs](https://github.com/Guard-Core/rocket-guard-rs) | Rocket adapter | [](https://crates.io/crates/rocket-guard-rs) |
| [guard-agent-rs](https://github.com/Guard-Core/guard-agent-rs) | Telemetry agent | [](https://crates.io/crates/guard-agent-rs) |
### AI Coding Agents
| Package | Role | PyPI |
|---|---|---|
| [guard-core-mcp](https://github.com/Guard-Core/guard-core-mcp) | MCP server: config validation, docs search, detection sandbox | [](https://pypi.org/project/guard-core-mcp/) |
___
## Documentation
š **[Documentation](https://guard-core.github.io/guard-core-mcp/latest/)** - full technical documentation for this package.
š”ļø **[Guard Core](https://guard-core.github.io/guard-core/latest/)** - the engine's reference documentation.
š¤ **[Monitoring Agent Integration](https://github.com/Guard-Core/guard-agent)** - monitor your Guard instance with a monitoring agent.
___
## Why
Your agent can already read the docs. What it cannot do is tell you that the `redis_failopen` in your config is silently doing nothing because the real field is `redis_fail_open`, or that the flag you are reaching for did not exist until guard-core 3.5.0, or whether a given request would actually be blocked and by which pattern.
This server answers those from the installed package: real pydantic validation, real field metadata, and the real detection engine. It also answers the cross-language questions the libraries cannot answer: which package guards a Gin, Fastify, Laravel or Rocket app, whether it is tagged or still path-dependent, how to wire its telemetry agent, and what response codes the SaaS ingest endpoint returns.
## Install
Install it **into your project's environment**, not as an isolated tool:
```bash
uv add --dev guard-core-mcp
claude mcp add guard-core -- uv run guard-core-mcp
```
`uvx guard-core-mcp` will start, but an isolated environment contains no `guard-core` or `fastapi-guard` for it to introspect, so it can only answer from bundled documentation. Running it inside your own environment is what makes the answers match the versions you actually ship.
## Tools
| Tool | Answers |
|---|---|
| `versions` | Which Guard libraries are installed here, and at what version |
| `validate_config` | Is this config valid, including typo'd keys pydantic silently ignores |
| `config_fields` | What is this setting, what does it default to, does a setting for X exist |
| `search_docs` | Where do the docs cover this |
| `get_doc` | The full text of one documentation page |
| `check_payload` | Would this request be blocked, and by which pattern |
| `ecosystem` | The full registry matrix: 5 languages, engines, adapters, agents, conformance, SaaS contract |
| `adapter_setup` | Install plus a verified minimal integration for one adapter (e.g. `go` + `gin`) |
| `wire_agent` | How to set up the telemetry agent for a language, including the ingestion contract |
The ecosystem tools are pure data, so they work everywhere, with or without the Python libraries installed. Every quick-start snippet is copied verbatim from the sibling repo READMEs, and `release_status` tells you honestly whether a package is `published`, `tagged`, or still `untagged` (source, `main`, or path dependency only).
## ChatGPT plugin
The same tools are also served remotely at `https://mcp.guard-core.com/mcp` and packaged as a ChatGPT plugin: sign in with a guard-core account, and ChatGPT can validate configs, search the docs and run payloads through the hosted detection engine (the latest published releases, not your local versions). The packaging lives in [`plugin/`](plugin/), the hosted server in `guard_core_mcp.hosting`, and the full story (env vars, Docker image, developer-mode test loop, submission checklist) in the [ChatGPT plugin guide](https://guard-core-mcp.guard-core.com/latest/chatgpt-plugin/).
## Licence
MIT
mcp-name: io.github.Guard-Core/guard-core-mcp
TDQS
Scored across 9 tools
Each tool targets a clearly distinct purpose, and the descriptions actively disambiguate near-neighbors (validate_config vs config_fields, search_docs vs get_doc, adapter_setup vs wire_agent vs ecosystem) with explicit 'use X instead' guidance. Overlap between ecosystem/adapter_setup/wire_agent is resolved by scope (survey vs one adapter vs telemetry agent), so misselection is unlikely.
Most tools follow a clean verb_noun snake_case pattern (check_payload, wire_agent, validate_config, config_fields, search_docs, get_doc, adapter_setup). The bare nouns 'versions' and 'ecosystem' break the pattern, but the deviation is minor and the names remain readable.
Nine tools is well-scoped for an introspection/help server covering config validation, field lookup, payload testing, docs retrieval, version reporting, and setup guidance. Each tool earns its place with no redundant filler.
The surface covers the main Guard workflows thoroughly: version reporting, config validation and field lookup, payload testing, docs search/read, ecosystem survey, and adapter/agent setup. Minor gaps exist, such as no direct tool to enumerate available doc packages or a changelog/migration guide, but these are workable around via ecosystem and search_docs.