Skip to content

Commit bcb56b7

Browse files
committed
readme
Signed-off-by: craig <cbrookes@redhat.com>
1 parent ef3ff32 commit bcb56b7

File tree

1 file changed

+34
-60
lines changed

1 file changed

+34
-60
lines changed

README.md

Lines changed: 34 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Kuadrant MCP Server
22

3-
A Model Context Protocol (MCP) server that generates Kuadrant policy manifests. Designed to work alongside [mcp-server-kubernetes](https://github.com/Flux159/mcp-server-kubernetes) for applying resources to clusters.
4-
5-
![Kuadrant MCP Server Demo](kuadrant-mcp-server-demo.gif)
3+
A Model Context Protocol (MCP) server for debugging Kuadrant installations. Provides structured debugging prompts and embedded troubleshooting guides. Designed to work alongside a Kubernetes MCP server (e.g. [mcp-server-kubernetes](https://github.com/Flux159/mcp-server-kubernetes)) for cluster interaction.
64

75
## Quick Start
86

@@ -60,89 +58,65 @@ docker run -i --rm ghcr.io/kuadrant/kuadrant-mcp-server:latest
6058
}
6159
```
6260

63-
## Tools
61+
## Prompts
6462

65-
| Tool | Description |
66-
|------|-------------|
67-
| `create_gateway` | Gateway manifest with Kuadrant annotations |
68-
| `create_httproute` | HTTPRoute manifest |
69-
| `create_dnspolicy` | DNSPolicy for DNS management |
70-
| `create_tlspolicy` | TLSPolicy for certificate management |
71-
| `create_ratelimitpolicy` | RateLimitPolicy for rate limiting |
72-
| `create_tokenratelimitpolicy` | TokenRateLimitPolicy for AI/LLM APIs |
73-
| `create_authpolicy` | AuthPolicy for authentication/authorisation |
63+
Structured debugging workflows that guide the LLM through diagnostic steps using a companion Kubernetes MCP server.
7464

75-
**Rate limit format**: Use `limit` and `window` fields (e.g., `"limit": 100, "window": "60s"`).
65+
| Prompt | Description |
66+
|--------|-------------|
67+
| `debug-installation` | Verify operator, CRDs, Kuadrant CR, Istio, Limitador, Authorino |
68+
| `debug-gateway` | Gateway not accepting traffic, listeners, Istio proxy |
69+
| `debug-dnspolicy` | DNS records not created, provider config, zone issues |
70+
| `debug-tlspolicy` | Certificates not issuing, issuer problems, cert-manager |
71+
| `debug-ratelimitpolicy` | Rate limits not enforced, Limitador health, targeting |
72+
| `debug-authpolicy` | Auth not enforced, Authorino health, rule matching |
73+
| `debug-telemetrypolicy` | Custom metrics not appearing, CEL expression issues |
74+
| `debug-tokenratelimitpolicy` | Token-based rate limiting not working |
75+
| `debug-policy-status` | Interpret status conditions on any policy |
76+
| `debug-policy-conflicts` | Override/default conflicts, policy hierarchy |
7677

77-
### Example Prompts
78+
### Example Usage
7879

7980
```
80-
Create a Gateway named 'api-gateway' in namespace 'production' with HTTPS on port 443
81+
Debug my Kuadrant installation in the kuadrant-system namespace
8182
82-
Create a RateLimitPolicy for HTTPRoute 'api-route' that limits to 100 requests per minute
83+
Why isn't my RateLimitPolicy 'api-limits' being enforced?
8384
84-
Set up an AuthPolicy requiring JWT auth from https://auth.example.com
85+
Help me understand the status conditions on my AuthPolicy
8586
86-
Show me the Kuadrant rate limiting documentation
87+
My DNSPolicy isn't creating DNS records - what's wrong?
8788
88-
Help me configure DNS with Route53 for my gateway
89+
Check if there are policy conflicts in the production namespace
8990
```
9091

9192
## Resources
9293

93-
Documentation is fetched from upstream repos and cached for 15 minutes.
94+
Embedded debugging guides bundled into the binary. No network access required.
9495

9596
| Resource | Description |
9697
|----------|-------------|
97-
| `kuadrant://docs/gateway-api` | Gateway API overview |
98-
| `kuadrant://docs/dnspolicy` | DNSPolicy reference |
99-
| `kuadrant://docs/ratelimitpolicy` | RateLimitPolicy reference |
100-
| `kuadrant://docs/tokenratelimitpolicy` | TokenRateLimitPolicy reference |
101-
| `kuadrant://docs/authpolicy` | AuthPolicy reference |
102-
| `kuadrant://docs/tlspolicy` | TLSPolicy reference |
103-
| `kuadrant://docs/telemetrypolicy` | TelemetryPolicy reference |
104-
| `kuadrant://docs/kuadrant` | Kuadrant CR reference |
105-
| `kuadrant://docs/authorino-features` | Authorino features |
106-
| `kuadrant://docs/planpolicy` | PlanPolicy extension |
107-
| `kuadrant://docs/secure-protect-connect` | Full walkthrough |
108-
| `kuadrant://docs/simple-ratelimiting` | Rate limiting guide |
109-
| `kuadrant://docs/auth-for-developers` | Auth guide |
98+
| `kuadrant://debug/installation` | Operator, CRDs, Kuadrant CR, Istio health |
99+
| `kuadrant://debug/gateway-istio` | Istio gateway proxy, listeners, envoy config |
100+
| `kuadrant://debug/dnspolicy` | DNS provider, zone config, record creation |
101+
| `kuadrant://debug/tlspolicy` | cert-manager, issuer, certificate lifecycle |
102+
| `kuadrant://debug/ratelimitpolicy` | Limitador health, rate limit enforcement |
103+
| `kuadrant://debug/authpolicy` | Authorino health, auth rule matching |
104+
| `kuadrant://debug/telemetrypolicy` | Custom metrics, CEL expressions |
105+
| `kuadrant://debug/tokenratelimitpolicy` | Token-based rate limiting |
106+
| `kuadrant://debug/status-conditions` | All status conditions across all policy types |
107+
| `kuadrant://debug/policy-conflicts` | Override/default hierarchy, multi-policy resolution |
110108

111109
## Kubernetes Integration
112110

113-
Combine with mcp-server-kubernetes for a complete workflow:
111+
Combine with a Kubernetes MCP server for a complete debugging workflow:
114112

115113
```bash
116114
# Add both servers
117115
claude mcp add -s user kuadrant docker -- run -i --rm ghcr.io/kuadrant/kuadrant-mcp-server:latest
118116
claude mcp add -s user kubernetes npx -- @flux159/mcp-server-kubernetes
119117
```
120118

121-
Then ask Claude to generate and deploy policies in one step.
122-
123-
## API Versions
124-
125-
| Resource | API Version |
126-
|----------|-------------|
127-
| Gateway/HTTPRoute | `gateway.networking.k8s.io/v1` |
128-
| DNSPolicy | `kuadrant.io/v1` |
129-
| TLSPolicy | `kuadrant.io/v1alpha1` |
130-
| RateLimitPolicy | `kuadrant.io/v1` |
131-
| TokenRateLimitPolicy | `kuadrant.io/v1` |
132-
| AuthPolicy | `kuadrant.io/v1` |
133-
134-
## Adding Resources
135-
136-
Add to `resourceMapping` in `resources.go`:
137-
138-
```go
139-
"kuadrant://docs/newpolicy": {
140-
url: "https://raw.githubusercontent.com/Kuadrant/kuadrant-operator/main/doc/reference/newpolicy.md",
141-
name: "NewPolicy Reference",
142-
description: "Description",
143-
fallback: "# NewPolicy\n\nSee: https://docs.kuadrant.io/...",
144-
},
145-
```
119+
The debugging prompts direct the LLM to use the Kubernetes MCP server for cluster queries — checking pod status, reading resource conditions, fetching events, and reading logs.
146120

147121
## Releases
148122

0 commit comments

Comments
 (0)