You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`kuadrant://examples/basic-setup` - Basic API setup example
285
291
-`kuadrant://examples/production-setup` - Production deployment example
@@ -313,86 +319,70 @@ docker run -i --rm ghcr.io/jasonmadigan/kuadrant-mcp-server:latest
313
319
314
320
## Updating Resource Documentation
315
321
316
-
The MCP server includes documentation resources that are extracted from the official Kuadrant repositories. This documentation is kept up-to-date using automated scripts.
322
+
Documentation is stored as markdown files in `docs/` and embedded into the binary at build time using Go's `//go:embed` directive.
317
323
318
-
### Quick Update Process
324
+
### Architecture
325
+
326
+
```
327
+
docs/ # Committed to git, embedded at build time
328
+
├── gateway-api.md
329
+
├── dnspolicy.md
330
+
├── ratelimitpolicy.md
331
+
├── authpolicy.md
332
+
├── tlspolicy.md
333
+
├── tokenratelimitpolicy.md
334
+
├── kuadrant.md
335
+
├── authorino-features.md
336
+
├── telemetrypolicy.md
337
+
├── planpolicy.md
338
+
├── troubleshooting.md
339
+
└── examples/
340
+
├── basic-setup.md
341
+
└── production-setup.md
342
+
```
319
343
320
-
To update the documentation to the latest version:
344
+
### Quick Update Process
321
345
322
346
```bash
323
-
# 1. Extract latest docs from source repos (based on mkdocs.yml config)
347
+
# 1. Extract latest docs from source repos
324
348
./update-docs.sh
325
349
326
-
# 2. (Optional) Generate Go resource handlers from the extracted docs
327
-
go run process-docs.go
328
-
329
-
# 3. Review and integrate the generated code
330
-
# The script generates resources-generated.go which you can review
331
-
# and manually integrate into resources.go as needed
332
-
```
333
-
334
-
### How It Works
350
+
# 2. Review extracted content
351
+
cat extracted-docs/extraction-summary.txt
335
352
336
-
The update process:
337
-
1.**Reads mkdocs.yml** from docs.kuadrant.io to get the exact list of files being published
338
-
2.**Clones source repos** (kuadrant-operator and authorino)
339
-
3.**Extracts only the files** specified in mkdocs.yml configuration
340
-
4.**Preserves directory structure** for easy navigation
341
-
5.**Creates a summary** of all extracted documentation
353
+
# 3. Update markdown files in docs/ as needed
354
+
# Compare with extracted-docs/ and update relevant content
For a complete Kubernetes workflow, you can combine this server with the Kubernetes MCP server.
@@ -449,11 +498,11 @@ Or using the binary directly:
449
498
#### Claude Code CLI
450
499
451
500
```bash
452
-
# Add Kuadrant server
453
-
claude mcp add kuadrant /path/to/kuadrant-mcp-server -s user
501
+
# Add Kuadrant server (using Docker)
502
+
claude mcp add -s user kuadrant docker -- run -i --rm ghcr.io/kuadrant/kuadrant-mcp-server:latest
454
503
455
504
# Add Kubernetes server
456
-
claude mcp add kubernetes npx @flux159/mcp-server-kubernetes -s user
505
+
claude mcp add -s user kubernetes npx -- @flux159/mcp-server-kubernetes
457
506
```
458
507
459
508
### Safe Mode
@@ -599,6 +648,7 @@ spec:
599
648
- DNSPolicy: `kuadrant.io/v1`
600
649
- TLSPolicy: `kuadrant.io/v1alpha1`
601
650
- RateLimitPolicy: `kuadrant.io/v1`
651
+
- TokenRateLimitPolicy: `kuadrant.io/v1`
602
652
- AuthPolicy: `kuadrant.io/v1`
603
653
604
654
## Claude Code CLI Setup
@@ -609,7 +659,7 @@ To use this server with Claude Code CLI:
609
659
610
660
```bash
611
661
# Add using Docker image
612
-
claude mcp add -s user kuadrant "docker run -i --rm ghcr.io/kuadrant/kuadrant-mcp-server:latest"
662
+
claude mcp add -s user kuadrant docker -- run -i --rm ghcr.io/kuadrant/kuadrant-mcp-server:latest
613
663
614
664
# Verify installation
615
665
claude mcp list
@@ -693,6 +743,9 @@ After setting up the MCP server, test it with these commands in Claude:
693
743
# Per-user rate limiting
694
744
Create a RateLimitPolicy for HTTPRoute 'api-routes' that allows 5 requests per 10 seconds for user 'alice' and 2 requests per 10 seconds for user 'bob' and apply this in my Kubernetes cluster with the kubernetes tool
695
745
746
+
# Token-based rate limiting for AI APIs
747
+
Create a TokenRateLimitPolicy for HTTPRoute 'llm-gateway' that limits GPT-4 to 10000 tokens per minute and GPT-3.5 to 50000 tokens per minute and apply this in my Kubernetes cluster with the kubernetes tool
748
+
696
749
# Authentication
697
750
Create an AuthPolicy for HTTPRoute 'api-routes' that requires JWT authentication from issuer 'https://auth.example.com' and apply this in my Kubernetes cluster with the kubernetes tool
698
751
@@ -778,25 +831,38 @@ rates:
778
831
779
832
## Updating Documentation
780
833
781
-
The server includes embedded documentation from the official Kuadrant repositories. To update to the latest docs:
834
+
Documentation is stored as markdown files in `docs/` and embedded into the binary at build time using Go's `//go:embed` directive.
835
+
836
+
### Quick Update
782
837
783
838
```bash
784
-
# Extract latest documentation from source repos
839
+
# 1. Fetch latest docs from upstream repos
785
840
./update-docs.sh
786
841
787
-
# (Optional) Generate Go code from the extracted docs
788
-
go run process-docs.go
842
+
# 2. Review extracted content
843
+
cat extracted-docs/extraction-summary.txt
844
+
845
+
# 3. Update markdown files in docs/ as needed
846
+
# Compare with extracted-docs/ and update
789
847
790
-
# Review and integrate changes as needed
848
+
# 4. Rebuild to embed changes
849
+
go build -o kuadrant-mcp-server
791
850
```
792
851
793
-
The update script:
794
-
- Reads the mkdocs.yml configuration from docs.kuadrant.io
795
-
- Extracts only the files actually published on the docs site
796
-
- Preserves the original directory structure
797
-
- Creates a summary of all extracted files
852
+
### Architecture
853
+
854
+
- **`docs/`** - Markdown files for each resource (committed to git)
855
+
- **`//go:embed`** - Files embedded into binary at build time
856
+
- **Single binary** - No external files needed at runtime
798
857
799
-
For more details, see [UPDATE_DOCS.md](UPDATE_DOCS.md).
0 commit comments