@robinmordasiewicz/f5xc-terraform-mcp 2.15.2 β 2.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -109
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,153 +1,145 @@
|
|
|
1
|
-
# MCP
|
|
1
|
+
# F5 Distributed Cloud Terraform MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
MCP server providing AI assistants with access to F5 Distributed Cloud (F5XC) Terraform provider documentation, 270+ OpenAPI specifications, subscription tier information, and addon service workflows.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Installation
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
### Option 1: npm (Requires Node.js 18+)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Current key maintainers:
|
|
14
|
-
- **Adam Jones** (Anthropic) [@domdomegg](https://github.com/domdomegg)
|
|
15
|
-
- **Tadas Antanavicius** (PulseMCP) [@tadasant](https://github.com/tadasant)
|
|
16
|
-
- **Toby Padilla** (GitHub) [@toby](https://github.com/toby)
|
|
17
|
-
- **Radoslav (Rado) Dimitrov** (Stacklok) [@rdimitrov](https://github.com/rdimitrov)
|
|
18
|
-
|
|
19
|
-
## Contributing
|
|
20
|
-
|
|
21
|
-
We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
|
|
22
|
-
|
|
23
|
-
Often (but not always) ideas flow through this pipeline:
|
|
24
|
-
|
|
25
|
-
- **[Discord](https://modelcontextprotocol.io/community/communication)** - Real-time community discussions
|
|
26
|
-
- **[Discussions](https://github.com/modelcontextprotocol/registry/discussions)** - Propose and discuss product/technical requirements
|
|
27
|
-
- **[Issues](https://github.com/modelcontextprotocol/registry/issues)** - Track well-scoped technical work
|
|
28
|
-
- **[Pull Requests](https://github.com/modelcontextprotocol/registry/pulls)** - Contribute work towards issues
|
|
9
|
+
```bash
|
|
10
|
+
# Run directly with npx
|
|
11
|
+
npx @robinmordasiewicz/f5xc-terraform-mcp
|
|
29
12
|
|
|
30
|
-
|
|
13
|
+
# Or install globally
|
|
14
|
+
npm install -g @robinmordasiewicz/f5xc-terraform-mcp
|
|
15
|
+
f5xc-terraform-mcp
|
|
16
|
+
```
|
|
31
17
|
|
|
32
|
-
|
|
18
|
+
### Option 2: Binary Bundle (No Dependencies)
|
|
33
19
|
|
|
34
|
-
-
|
|
35
|
-
- **Go 1.24.x**
|
|
36
|
-
- **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
|
|
37
|
-
- **golangci-lint v2.4.0**
|
|
20
|
+
Download the standalone `.mcpb` binary - no Node.js or Docker required:
|
|
38
21
|
|
|
39
|
-
|
|
22
|
+
1. Download from [GitHub Releases](https://github.com/robinmordasiewicz/terraform-provider-f5xc/releases/latest) - look for `f5xc-terraform-mcp-X.X.X.mcpb`
|
|
40
23
|
|
|
24
|
+
2. Make executable and run:
|
|
41
25
|
```bash
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
chmod +x f5xc-terraform-mcp-*.mcpb
|
|
27
|
+
./f5xc-terraform-mcp-*.mcpb
|
|
44
28
|
```
|
|
45
29
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
**Note:** The registry uses [ko](https://ko.build) to build container images. The `make dev-compose` command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.
|
|
30
|
+
### Option 3: Portable Node.js (No Admin Rights)
|
|
49
31
|
|
|
50
|
-
|
|
32
|
+
For users without admin privileges who cannot install Node.js system-wide:
|
|
51
33
|
|
|
52
|
-
|
|
34
|
+
1. Download Node.js portable binaries from [nodejs.org/download/prebuilt-binaries](https://nodejs.org/en/download/prebuilt-binaries)
|
|
35
|
+
2. Extract to user directory (e.g., `~/node/`)
|
|
36
|
+
3. Add to PATH: `export PATH="$HOME/node/bin:$PATH"`
|
|
37
|
+
4. Use npx as normal
|
|
53
38
|
|
|
54
|
-
|
|
55
|
-
<summary>Alternative: Running a pre-built Docker image</summary>
|
|
39
|
+
## Configuration
|
|
56
40
|
|
|
57
|
-
|
|
41
|
+
### Claude Desktop
|
|
58
42
|
|
|
59
|
-
|
|
60
|
-
# Run latest stable release
|
|
61
|
-
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
|
|
43
|
+
Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
62
44
|
|
|
63
|
-
|
|
64
|
-
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"mcpServers": {
|
|
48
|
+
"f5xc-terraform": {
|
|
49
|
+
"command": "npx",
|
|
50
|
+
"args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
65
55
|
|
|
66
|
-
|
|
67
|
-
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
|
|
56
|
+
Or with the binary bundle:
|
|
68
57
|
|
|
69
|
-
|
|
70
|
-
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"mcpServers": {
|
|
61
|
+
"f5xc-terraform": {
|
|
62
|
+
"command": "/path/to/f5xc-terraform-mcp.mcpb"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
71
66
|
```
|
|
72
67
|
|
|
73
|
-
|
|
74
|
-
- **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
|
|
75
|
-
- **Continuous**: `main` (latest main branch build)
|
|
76
|
-
- **Development**: `main-<date>-<sha>` (specific commit builds)
|
|
77
|
-
|
|
78
|
-
</details>
|
|
68
|
+
### Claude Code CLI
|
|
79
69
|
|
|
80
|
-
|
|
70
|
+
```bash
|
|
71
|
+
claude mcp add f5xc-terraform -- npx -y @robinmordasiewicz/f5xc-terraform-mcp
|
|
72
|
+
```
|
|
81
73
|
|
|
82
|
-
|
|
74
|
+
### VSCode with Cline/Continue
|
|
83
75
|
|
|
84
|
-
|
|
85
|
-
# Build the latest CLI
|
|
86
|
-
make publisher
|
|
76
|
+
Add to your MCP settings:
|
|
87
77
|
|
|
88
|
-
|
|
89
|
-
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"mcpServers": {
|
|
81
|
+
"f5xc-terraform": {
|
|
82
|
+
"command": "npx",
|
|
83
|
+
"args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
90
87
|
```
|
|
91
88
|
|
|
92
|
-
|
|
89
|
+
## Available Tools
|
|
93
90
|
|
|
94
|
-
|
|
91
|
+
The server provides 6 consolidated tools optimized for token efficiency:
|
|
95
92
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
| Tool | Description |
|
|
94
|
+
|------|-------------|
|
|
95
|
+
| `f5xc_terraform_discover` | Discovery meta-tool - lists available tools and their schemas |
|
|
96
|
+
| `f5xc_terraform_docs` | Search, get, or list provider documentation (resources, data sources, functions, guides) |
|
|
97
|
+
| `f5xc_terraform_api` | Search OpenAPI specs, get spec details, find endpoints, get schema definitions |
|
|
98
|
+
| `f5xc_terraform_subscription` | Get subscription tier requirements for resources |
|
|
99
|
+
| `f5xc_terraform_addon` | Get addon service activation information |
|
|
100
|
+
| `f5xc_terraform_get_summary` | Get provider overview with statistics |
|
|
100
101
|
|
|
101
|
-
|
|
102
|
+
### Example Usage
|
|
102
103
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
**Search documentation:**
|
|
105
|
+
```
|
|
106
|
+
f5xc_terraform_docs(operation: "search", query: "http_loadbalancer")
|
|
107
|
+
```
|
|
106
108
|
|
|
107
|
-
|
|
109
|
+
**Get full resource documentation:**
|
|
110
|
+
```
|
|
111
|
+
f5xc_terraform_docs(operation: "get", name: "http_loadbalancer", type: "resource")
|
|
112
|
+
```
|
|
108
113
|
|
|
109
|
-
|
|
114
|
+
**Find API endpoints:**
|
|
115
|
+
```
|
|
116
|
+
f5xc_terraform_api(operation: "find_endpoints", pattern: "/namespaces", method: "POST")
|
|
117
|
+
```
|
|
110
118
|
|
|
119
|
+
**Check subscription requirements:**
|
|
111
120
|
```
|
|
112
|
-
|
|
113
|
-
β βββ publisher/ # Server publishing tool
|
|
114
|
-
βββ data/ # Seed data
|
|
115
|
-
βββ deploy/ # Deployment configuration (Pulumi)
|
|
116
|
-
βββ docs/ # Documentation
|
|
117
|
-
βββ internal/ # Private application code
|
|
118
|
-
β βββ api/ # HTTP handlers and routing
|
|
119
|
-
β βββ auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
|
|
120
|
-
β βββ config/ # Configuration management
|
|
121
|
-
β βββ database/ # Data persistence (PostgreSQL)
|
|
122
|
-
β βββ service/ # Business logic
|
|
123
|
-
β βββ telemetry/ # Metrics and monitoring
|
|
124
|
-
β βββ validators/ # Input validation
|
|
125
|
-
βββ pkg/ # Public packages
|
|
126
|
-
β βββ api/ # API types and structures
|
|
127
|
-
β β βββ v0/ # Version 0 API types
|
|
128
|
-
β βββ model/ # Data models for server.json
|
|
129
|
-
βββ scripts/ # Development and testing scripts
|
|
130
|
-
βββ tests/ # Integration tests
|
|
131
|
-
βββ tools/ # CLI tools and utilities
|
|
132
|
-
βββ validate-*.sh # Schema validation tools
|
|
121
|
+
f5xc_terraform_subscription(operation: "get", resource: "bot_defense_advanced_policy")
|
|
133
122
|
```
|
|
134
123
|
|
|
135
|
-
|
|
124
|
+
## What's Included
|
|
125
|
+
|
|
126
|
+
- **144+ Terraform Resources** - Full documentation for all F5XC resources
|
|
127
|
+
- **270+ OpenAPI Specifications** - Complete API reference for F5XC services
|
|
128
|
+
- **Subscription Tier Info** - Which features require which subscription level
|
|
129
|
+
- **Addon Service Workflows** - Activation status and requirements
|
|
130
|
+
- **Example Configurations** - Working Terraform examples for each resource
|
|
136
131
|
|
|
137
|
-
|
|
138
|
-
- **GitHub OAuth** - For publishing by logging into GitHub
|
|
139
|
-
- **GitHub OIDC** - For publishing from GitHub Actions
|
|
140
|
-
- **DNS verification** - For proving ownership of a domain and its subdomains
|
|
141
|
-
- **HTTP verification** - For proving ownership of a domain
|
|
132
|
+
## Version Synchronization
|
|
142
133
|
|
|
143
|
-
The
|
|
144
|
-
- `io.github.domdomegg/my-cool-mcp` you must login to GitHub as `domdomegg`, or be in a GitHub Action on domdomegg's repos
|
|
145
|
-
- `me.adamjones/my-cool-mcp` you must prove ownership of `adamjones.me` via DNS or HTTP challenge
|
|
134
|
+
The MCP server version is automatically synchronized with the Terraform provider releases. Both always share the same version number (e.g., v2.15.2).
|
|
146
135
|
|
|
147
|
-
##
|
|
136
|
+
## Links
|
|
148
137
|
|
|
149
|
-
|
|
138
|
+
- [Terraform Provider](https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest)
|
|
139
|
+
- [GitHub Repository](https://github.com/robinmordasiewicz/terraform-provider-f5xc)
|
|
140
|
+
- [npm Package](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-terraform-mcp)
|
|
141
|
+
- [F5 Distributed Cloud Documentation](https://docs.cloud.f5.com/)
|
|
150
142
|
|
|
151
|
-
##
|
|
143
|
+
## License
|
|
152
144
|
|
|
153
|
-
|
|
145
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robinmordasiewicz/f5xc-terraform-mcp",
|
|
3
|
-
"version": "2.15.
|
|
3
|
+
"version": "2.15.3",
|
|
4
4
|
"description": "MCP server for F5 Distributed Cloud Terraform provider - documentation, 270+ OpenAPI specs, subscription info, and addon activation workflows for AI assistants",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|