@robinmordasiewicz/f5xc-terraform-mcp 3.5.0 → 3.6.0

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.
Files changed (111) hide show
  1. package/README.md +283 -104
  2. package/dist/docs/data-sources/bgp.md +2 -2
  3. package/dist/docs/data-sources/discovery.md +2 -2
  4. package/dist/docs/data-sources/fast_acl.md +2 -2
  5. package/dist/docs/data-sources/fast_acl_rule.md +2 -2
  6. package/dist/docs/data-sources/irule.md +2 -2
  7. package/dist/docs/data-sources/log_receiver.md +2 -2
  8. package/dist/docs/data-sources/network_policy.md +2 -2
  9. package/dist/docs/data-sources/route.md +2 -2
  10. package/dist/docs/data-sources/site.md +2 -2
  11. package/dist/docs/resources/address_allocator.md +7 -7
  12. package/dist/docs/resources/advertise_policy.md +57 -57
  13. package/dist/docs/resources/alert_policy.md +40 -40
  14. package/dist/docs/resources/alert_receiver.md +57 -57
  15. package/dist/docs/resources/api_crawler.md +13 -13
  16. package/dist/docs/resources/api_definition.md +11 -11
  17. package/dist/docs/resources/api_discovery.md +4 -4
  18. package/dist/docs/resources/api_testing.md +27 -27
  19. package/dist/docs/resources/apm.md +40 -40
  20. package/dist/docs/resources/app_api_group.md +20 -20
  21. package/dist/docs/resources/app_firewall.md +50 -50
  22. package/dist/docs/resources/app_setting.md +19 -19
  23. package/dist/docs/resources/app_type.md +7 -7
  24. package/dist/docs/resources/authentication.md +29 -29
  25. package/dist/docs/resources/aws_tgw_site.md +140 -140
  26. package/dist/docs/resources/aws_vpc_site.md +174 -174
  27. package/dist/docs/resources/azure_vnet_site.md +245 -245
  28. package/dist/docs/resources/bgp.md +37 -205
  29. package/dist/docs/resources/bgp_asn_set.md +1 -1
  30. package/dist/docs/resources/bgp_routing_policy.md +19 -19
  31. package/dist/docs/resources/bot_defense_app_infrastructure.md +12 -12
  32. package/dist/docs/resources/cdn_cache_rule.md +5 -5
  33. package/dist/docs/resources/cdn_loadbalancer.md +418 -418
  34. package/dist/docs/resources/certificate.md +1 -1
  35. package/dist/docs/resources/certificate_chain.md +1 -1
  36. package/dist/docs/resources/cloud_connect.md +28 -28
  37. package/dist/docs/resources/cloud_credentials.md +35 -35
  38. package/dist/docs/resources/cloud_elastic_ip.md +8 -8
  39. package/dist/docs/resources/cloud_link.md +36 -36
  40. package/dist/docs/resources/cluster.md +86 -86
  41. package/dist/docs/resources/cminstance.md +22 -22
  42. package/dist/docs/resources/code_base_integration.md +24 -24
  43. package/dist/docs/resources/container_registry.md +13 -13
  44. package/dist/docs/resources/crl.md +1 -1
  45. package/dist/docs/resources/data_type.md +16 -16
  46. package/dist/docs/resources/dc_cluster_group.md +4 -4
  47. package/dist/docs/resources/discovery.md +8 -259
  48. package/dist/docs/resources/dns_compliance_checks.md +1 -1
  49. package/dist/docs/resources/dns_domain.md +3 -3
  50. package/dist/docs/resources/endpoint.md +44 -44
  51. package/dist/docs/resources/enhanced_firewall_policy.md +51 -51
  52. package/dist/docs/resources/external_connector.md +42 -42
  53. package/dist/docs/resources/fast_acl.md +60 -166
  54. package/dist/docs/resources/fast_acl_rule.md +28 -28
  55. package/dist/docs/resources/filter_set.md +10 -10
  56. package/dist/docs/resources/fleet.md +160 -160
  57. package/dist/docs/resources/forward_proxy_policy.md +82 -82
  58. package/dist/docs/resources/forwarding_class.md +14 -14
  59. package/dist/docs/resources/gcp_vpc_site.md +152 -152
  60. package/dist/docs/resources/global_log_receiver.md +238 -238
  61. package/dist/docs/resources/healthcheck.md +17 -17
  62. package/dist/docs/resources/http_loadbalancer.md +1003 -1003
  63. package/dist/docs/resources/irule.md +5 -7
  64. package/dist/docs/resources/log_receiver.md +825 -44
  65. package/dist/docs/resources/malicious_user_mitigation.md +10 -10
  66. package/dist/docs/resources/nat_policy.md +86 -86
  67. package/dist/docs/resources/network_connector.md +31 -31
  68. package/dist/docs/resources/network_firewall.md +22 -22
  69. package/dist/docs/resources/network_interface.md +77 -77
  70. package/dist/docs/resources/network_policy.md +38 -217
  71. package/dist/docs/resources/network_policy_rule.md +21 -21
  72. package/dist/docs/resources/network_policy_view.md +65 -65
  73. package/dist/docs/resources/nfv_service.md +76 -76
  74. package/dist/docs/resources/nginx_service_discovery.md +10 -10
  75. package/dist/docs/resources/origin_pool.md +166 -166
  76. package/dist/docs/resources/policer.md +4 -4
  77. package/dist/docs/resources/policy_based_routing.md +28 -28
  78. package/dist/docs/resources/protocol_inspection.md +12 -12
  79. package/dist/docs/resources/protocol_policer.md +14 -14
  80. package/dist/docs/resources/proxy.md +111 -111
  81. package/dist/docs/resources/rate_limiter.md +15 -15
  82. package/dist/docs/resources/rate_limiter_policy.md +56 -56
  83. package/dist/docs/resources/route.md +183 -183
  84. package/dist/docs/resources/secret_management_access.md +68 -68
  85. package/dist/docs/resources/securemesh_site.md +1619 -258
  86. package/dist/docs/resources/segment.md +4 -4
  87. package/dist/docs/resources/sensitive_data_policy.md +9 -9
  88. package/dist/docs/resources/service_policy.md +175 -175
  89. package/dist/docs/resources/service_policy_rule.md +142 -142
  90. package/dist/docs/resources/site.md +381 -303
  91. package/dist/docs/resources/site_mesh_group.md +18 -18
  92. package/dist/docs/resources/subnet.md +17 -17
  93. package/dist/docs/resources/tcp_loadbalancer.md +130 -130
  94. package/dist/docs/resources/tenant_configuration.md +10 -10
  95. package/dist/docs/resources/trusted_ca_list.md +1 -1
  96. package/dist/docs/resources/tunnel.md +36 -36
  97. package/dist/docs/resources/udp_loadbalancer.md +59 -59
  98. package/dist/docs/resources/usb_policy.md +6 -6
  99. package/dist/docs/resources/user_identification.md +16 -16
  100. package/dist/docs/resources/virtual_host.md +225 -225
  101. package/dist/docs/resources/virtual_network.md +14 -14
  102. package/dist/docs/resources/virtual_site.md +3 -3
  103. package/dist/docs/resources/voltstack_site.md +141 -141
  104. package/dist/docs/resources/waf_exclusion_policy.md +17 -17
  105. package/dist/docs/resources/workload.md +327 -327
  106. package/dist/docs/resources/workload_flavor.md +3 -3
  107. package/dist/metadata/resource-metadata.json +1484 -942
  108. package/dist/types.d.ts +11 -0
  109. package/dist/types.d.ts.map +1 -1
  110. package/dist/types.js.map +1 -1
  111. package/package.json +1 -1
package/README.md CHANGED
@@ -1,153 +1,332 @@
1
- # MCP Registry
1
+ # F5 Distributed Cloud Terraform MCP Server
2
2
 
3
- The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
3
+ [![npm version](https://img.shields.io/npm/v/@robinmordasiewicz/f5xc-terraform-mcp)](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-terraform-mcp)
4
+ [![MIT License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)
4
5
 
5
- [**📤 Publish my MCP server**](docs/modelcontextprotocol-io/quickstart.mdx) | [**⚡️ Live API docs**](https://registry.modelcontextprotocol.io/docs) | [**👀 Ecosystem vision**](docs/design/ecosystem-vision.md) | 📖 **[Full documentation](./docs)**
6
+ Token-optimized Model Context Protocol (MCP) server for F5 Distributed Cloud Terraform provider documentation, API specifications, and subscription management.
6
7
 
7
- ## Development Status
8
+ This MCP server exposes tools for AI assistants to interact with the [F5 Distributed Cloud Terraform Provider](https://github.com/robinmordasiewicz/terraform-provider-f5xc), enabling intelligent infrastructure-as-code assistance.
8
9
 
9
- **2025-10-24 update**: The Registry API has entered an **API freeze (v0.1)** 🎉. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patience—your involvement has been key to getting us here!
10
+ ## Features
10
11
 
11
- **2025-09-08 update**: The registry has launched in preview 🎉 ([announcement blog post](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/)). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in [GitHub discussions](https://github.com/modelcontextprotocol/registry/discussions/new?category=ideas) or in the [#registry-dev Discord](https://discord.com/channels/1358869848138059966/1369487942862504016) ([joining details here](https://modelcontextprotocol.io/community/communication)).
12
+ - **270+ OpenAPI Specifications** - Complete F5XC API documentation for AI-assisted configuration
13
+ - **250+ Terraform Resources** - Full documentation for all provider resources and data sources
14
+ - **Token-Optimized Design** - 14 tools consolidated to 7 (~75% token reduction)
15
+ - **Subscription Tier Management** - Check feature availability across STANDARD/ADVANCED/PREMIUM tiers
16
+ - **Addon Service Workflows** - Manage F5XC service activations
17
+ - **Resource Metadata** - Deterministic AI configuration generation with validation rules, defaults, and one-of schemas
12
18
 
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)
19
+ ## Installation
18
20
 
19
- ## Contributing
21
+ ### Global Installation
20
22
 
21
- We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
23
+ ```bash
24
+ npm install -g @robinmordasiewicz/f5xc-terraform-mcp
25
+ ```
22
26
 
23
- Often (but not always) ideas flow through this pipeline:
27
+ ### Usage with Claude Desktop
24
28
 
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
29
+ Add to your `claude_desktop_config.json`:
29
30
 
30
- ### Quick start:
31
+ ```json
32
+ {
33
+ "mcpServers": {
34
+ "f5xc-terraform": {
35
+ "command": "npx",
36
+ "args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
37
+ }
38
+ }
39
+ }
40
+ ```
31
41
 
32
- #### Pre-requisites
42
+ ### Manual CLI Usage
33
43
 
34
- - **Docker**
35
- - **Go 1.24.x**
36
- - **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
37
- - **golangci-lint v2.4.0**
44
+ ```bash
45
+ # Run the MCP server
46
+ npx @robinmordasiewicz/f5xc-terraform-mcp
38
47
 
39
- #### Running the server
48
+ # Or install globally and run directly
49
+ f5xc-terraform-mcp
50
+ ```
40
51
 
41
- ```bash
42
- # Start full development environment
43
- make dev-compose
52
+ ## Available Tools
53
+
54
+ | Tool | Description |
55
+ |------|-------------|
56
+ | `f5xc_terraform_discover` | Meta-tool for discovering available tools with optional schema details |
57
+ | `f5xc_terraform_docs` | Search, get, or list documentation (resources, data-sources, functions, guides) |
58
+ | `f5xc_terraform_api` | Query 270+ OpenAPI specs (search, get, find endpoints, schema definitions) |
59
+ | `f5xc_terraform_subscription` | Check subscription tier requirements for resources and properties |
60
+ | `f5xc_terraform_addon` | Manage addon services (list, check activation, workflow) |
61
+ | `f5xc_terraform_metadata` | Resource metadata for deterministic AI config generation |
62
+ | `f5xc_terraform_get_summary` | Get provider summary with documentation and API specs overview |
63
+
64
+ ## Tool Details
65
+
66
+ ### Documentation Tool (`f5xc_terraform_docs`)
67
+
68
+ Search and retrieve Terraform provider documentation.
69
+
70
+ ```typescript
71
+ // Search for resources
72
+ await f5xc_terraform_docs({
73
+ operation: "search",
74
+ query: "http_loadbalancer",
75
+ type: "resource",
76
+ limit: 10
77
+ });
78
+
79
+ // Get specific resource documentation
80
+ await f5xc_terraform_docs({
81
+ operation: "get",
82
+ name: "http_loadbalancer",
83
+ type: "resource"
84
+ });
85
+
86
+ // List all resources
87
+ await f5xc_terraform_docs({
88
+ operation: "list",
89
+ type: "resource"
90
+ });
44
91
  ```
45
92
 
46
- This starts the registry at [`localhost:8080`](http://localhost:8080) with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.
93
+ ### API Specification Tool (`f5xc_terraform_api`)
94
+
95
+ Query OpenAPI specifications for API details.
96
+
97
+ ```typescript
98
+ // Search API specs
99
+ await f5xc_terraform_api({
100
+ operation: "search",
101
+ query: "http_loadbalancer",
102
+ limit: 10
103
+ });
104
+
105
+ // Get full spec with endpoints
106
+ await f5xc_terraform_api({
107
+ operation: "get",
108
+ name: "http_loadbalancer",
109
+ include_paths: true,
110
+ include_definitions: false
111
+ });
112
+
113
+ // Find endpoints matching pattern
114
+ await f5xc_terraform_api({
115
+ operation: "find_endpoints",
116
+ pattern: "/namespaces",
117
+ method: "GET"
118
+ });
119
+
120
+ // Get schema definition
121
+ await f5xc_terraform_api({
122
+ operation: "get_definition",
123
+ spec_name: "http_loadbalancer",
124
+ definition_name: "HTTPLoadBalancerSpec"
125
+ });
126
+ ```
47
127
 
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.
128
+ ### Subscription Tool (`f5xc_terraform_subscription`)
49
129
 
50
- By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with `MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose`.
130
+ Check subscription tier requirements.
51
131
 
52
- The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
132
+ ```typescript
133
+ // Get resource tier requirements
134
+ await f5xc_terraform_subscription({
135
+ operation: "resource",
136
+ resource_name: "http_loadbalancer"
137
+ });
53
138
 
54
- <details>
55
- <summary>Alternative: Running a pre-built Docker image</summary>
139
+ // Check if property requires Advanced tier
140
+ await f5xc_terraform_subscription({
141
+ operation: "property",
142
+ resource_name: "http_loadbalancer",
143
+ property_path: "enable_malicious_user_detection"
144
+ });
145
+ ```
56
146
 
57
- Pre-built Docker images are automatically published to GitHub Container Registry:
147
+ ### Addon Service Tool (`f5xc_terraform_addon`)
58
148
 
59
- ```bash
60
- # Run latest stable release
61
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
149
+ Manage F5XC addon services.
62
150
 
63
- # Run latest from main branch (continuous deployment)
64
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
151
+ ```typescript
152
+ // List available addon services
153
+ await f5xc_terraform_addon({
154
+ operation: "list"
155
+ });
65
156
 
66
- # Run specific release version
67
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
157
+ // Check service activation status
158
+ await f5xc_terraform_addon({
159
+ operation: "check",
160
+ service_name: "wasm"
161
+ });
68
162
 
69
- # Run development build from main branch
70
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
163
+ // Get activation workflow guidance
164
+ await f5xc_terraform_addon({
165
+ operation: "workflow",
166
+ service_name: "security_app_protect"
167
+ });
71
168
  ```
72
169
 
73
- **Available tags:**
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)
170
+ ### Metadata Tool (`f5xc_terraform_metadata`)
171
+
172
+ Get resource metadata for deterministic AI configuration.
173
+
174
+ ```typescript
175
+ // Get one-of field options
176
+ await f5xc_terraform_metadata({
177
+ operation: "oneof",
178
+ resource: "http_loadbalancer",
179
+ attribute: "http_type"
180
+ });
181
+
182
+ // Get validation patterns
183
+ await f5xc_terraform_metadata({
184
+ operation: "validation",
185
+ pattern: "name"
186
+ });
187
+
188
+ // Get default values
189
+ await f5xc_terraform_metadata({
190
+ operation: "defaults",
191
+ resource: "namespace"
192
+ });
193
+
194
+ // Get enums
195
+ await f5xc_terraform_metadata({
196
+ operation: "enums",
197
+ resource: "http_loadbalancer"
198
+ });
199
+
200
+ // Check attribute properties
201
+ await f5xc_terraform_metadata({
202
+ operation: "attribute",
203
+ resource: "http_loadbalancer",
204
+ attribute: "name"
205
+ });
206
+
207
+ // Check requires_replace
208
+ await f5xc_terraform_metadata({
209
+ operation: "requires_replace",
210
+ resource: "http_loadbalancer",
211
+ attribute: "name"
212
+ });
213
+
214
+ // Get resource dependencies
215
+ await f5xc_terraform_metadata({
216
+ operation: "dependencies",
217
+ resource: "http_loadbalancer"
218
+ });
219
+
220
+ // Get troubleshooting info
221
+ await f5xc_terraform_metadata({
222
+ operation: "troubleshoot",
223
+ error_code: "NOT_FOUND"
224
+ });
225
+
226
+ // Get full resource summary
227
+ await f5xc_terraform_metadata({
228
+ operation: "summary",
229
+ resource: "namespace"
230
+ });
231
+ ```
77
232
 
78
- </details>
233
+ ## Response Format
79
234
 
80
- #### Publishing a server
235
+ All tools support both `markdown` (default) and `json` response formats:
81
236
 
82
- To publish a server, we've built a simple CLI. You can use it with:
237
+ ```typescript
238
+ await f5xc_terraform_get_summary({
239
+ response_format: "json"
240
+ });
241
+ ```
83
242
 
84
- ```bash
85
- # Build the latest CLI
86
- make publisher
243
+ ## Token Optimization
87
244
 
88
- # Use it!
89
- ./bin/mcp-publisher --help
90
- ```
245
+ This MCP server uses a token-optimized design:
91
246
 
92
- See [the publisher guide](./docs/modelcontextprotocol-io/quickstart.mdx) for more details.
247
+ - **14 original tools consolidated to 7** (~75% token reduction)
248
+ - **Discovery meta-tool** enables lazy schema loading
249
+ - **Shared parameter descriptions** reduce schema size
250
+ - **Response truncation** for large payloads (50,000 character limit)
93
251
 
94
- #### Other commands
252
+ ## F5XC Provider Quick Start
95
253
 
96
- ```bash
97
- # Run lint, unit tests and integration tests
98
- make check
254
+ For Terraform configuration:
255
+
256
+ ```hcl
257
+ terraform {
258
+ required_providers {
259
+ f5xc = {
260
+ source = "robinmordasiewicz/f5xc"
261
+ version = ">= 2.0.0"
262
+ }
263
+ }
264
+ }
265
+
266
+ provider "f5xc" {
267
+ api_url = "https://your-tenant.console.ves.volterra.io"
268
+ api_token = var.f5xc_api_token
269
+ }
270
+
271
+ # Create a namespace
272
+ resource "f5xc_namespace" "example" {
273
+ name = "my-namespace"
274
+ }
99
275
  ```
100
276
 
101
- There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
277
+ ## Resources Supported
102
278
 
103
- <!--
104
- For Claude and other AI tools: Always prefer make targets over custom commands where possible.
105
- -->
279
+ - **250+ Terraform Resources** - Full CRUD for F5XC services
280
+ - **40+ Data Sources** - Read-only access to F5XC configurations
281
+ - **2 Provider Functions** - `blindfold` and `blindfold_file` for secret management
282
+ - **Multiple Guides** - Step-by-step tutorials for common use cases
106
283
 
107
- ## Architecture
284
+ ## Subscription Tiers
108
285
 
109
- ### Project Structure
286
+ F5XC resources are organized by subscription tier:
110
287
 
111
- ```
112
- ├── cmd/ # Application entry points
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
133
- ```
288
+ | Tier | Description |
289
+ |------|-------------|
290
+ | **STANDARD** | Core networking and security features |
291
+ | **ADVANCED** | Enhanced WAF, bot defense, and advanced security |
292
+ | **PREMIUM** | Enterprise features and dedicated support |
293
+
294
+ Use the subscription tool to check which tier a resource or feature requires.
295
+
296
+ ## Documentation
297
+
298
+ - [Terraform Provider Documentation](https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest/docs)
299
+ - [F5 Distributed Cloud Docs](https://docs.cloud.f5.com/)
300
+ - [MCP Protocol Documentation](https://modelcontextprotocol.io/)
134
301
 
135
- ### Authentication
302
+ ## Version Synchronization
136
303
 
137
- Publishing supports multiple authentication methods:
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
304
+ This npm package version is automatically synchronized with GitHub releases. Both the Terraform provider and MCP server share the same version number for consistency.
142
305
 
143
- The registry validates namespace ownership when publishing. E.g. to publish...:
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
306
+ ## Development
307
+
308
+ ```bash
309
+ # Clone the repository
310
+ git clone https://github.com/robinmordasiewicz/terraform-provider-f5xc.git
311
+
312
+ # Navigate to MCP server directory
313
+ cd mcp-server
314
+
315
+ # Install dependencies
316
+ npm install
317
+
318
+ # Build the server
319
+ npm run build
320
+
321
+ # Run in development mode with hot reload
322
+ npm run dev
323
+ ```
146
324
 
147
- ## Community Projects
325
+ ## License
148
326
 
149
- Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
327
+ This project is licensed under the [MIT License](LICENSE).
150
328
 
151
- ## More documentation
329
+ ## Support
152
330
 
153
- See the [documentation](./docs) for more details if your question has not been answered here!
331
+ - [GitHub Issues](https://github.com/robinmordasiewicz/terraform-provider-f5xc/issues)
332
+ - [F5 Community](https://community.f5.com/)
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_bgp Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Networking"
4
4
  description: |-
5
- Manages a BGP resource in F5 Distributed Cloud for bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration.
5
+ Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_bgp (Data Source)
9
9
 
10
- Manages a BGP resource in F5 Distributed Cloud for bgp object is the configuration for peering with external bgp servers. it is created by users in system namespace. configuration.
10
+ Manages a BGP resource in F5 Distributed Cloud for bgp routing policy is a list of rules containing match criteria and action to be applied. these rules help contol routes which are imported or exported to bgp peers. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_discovery Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Applications"
4
4
  description: |-
5
- Manages a Discovery resource in F5 Distributed Cloud for api to create discovery object for a site or virtual site in system namespace. configuration.
5
+ Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_discovery (Data Source)
9
9
 
10
- Manages a Discovery resource in F5 Distributed Cloud for api to create discovery object for a site or virtual site in system namespace. configuration.
10
+ Manages API discovery creates a new object in the storage backend for metadata.namespace. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_fast_acl Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages fast_acl object, fast_acl object contains rules to protect site from denial of service It has destination{destination IP, destination port) and references to fast_acl_rule in F5 Distributed Cloud.
5
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_fast_acl (Data Source)
9
9
 
10
- Manages `fast_acl` object, `fast_acl` object contains rules to protect site from denial of service It has destination{destination IP, destination port) and references to `fast_acl_rule` in F5 Distributed Cloud.
10
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_fast_acl_rule Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages new Fast ACL rule, fast_acl_rule has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
5
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_fast_acl_rule (Data Source)
9
9
 
10
- Manages new Fast ACL rule, `fast_acl_rule` has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
10
+ Manages new Fast ACL rule, has specification to match source IP, source port and action to apply. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_irule Data Source - terraform-provider-f5xc"
3
3
  subcategory: "BIG-IP Integration"
4
4
  description: |-
5
- Manages a Irule resource in F5 Distributed Cloud for desired state for big-ip irule service. configuration.
5
+ Manages iRule in a given namespace. If one already exists it will give an error. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_irule (Data Source)
9
9
 
10
- Manages a Irule resource in F5 Distributed Cloud for desired state for big-ip irule service. configuration.
10
+ Manages iRule in a given namespace. If one already exists it will give an error. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_log_receiver Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Monitoring"
4
4
  description: |-
5
- Manages new Log Receiver object. in F5 Distributed Cloud.
5
+ Manages new Global Log Receiver object. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_log_receiver (Data Source)
9
9
 
10
- Manages new Log Receiver object. in F5 Distributed Cloud.
10
+ Manages new Global Log Receiver object. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_network_policy Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Security"
4
4
  description: |-
5
- Manages new network policy with configured parameters in specified namespace. in F5 Distributed Cloud.
5
+ Manages network policy rule with configured parameters in specified namespace. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_network_policy (Data Source)
9
9
 
10
- Manages new network policy with configured parameters in specified namespace. in F5 Distributed Cloud.
10
+ Manages network policy rule with configured parameters in specified namespace. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_route Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Load Balancing"
4
4
  description: |-
5
- Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. Virtual host object has reference to route object. in F5 Distributed Cloud.
5
+ Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. in F5 Distributed Cloud.
6
6
  ---
7
7
 
8
8
  # f5xc_route (Data Source)
9
9
 
10
- Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. Virtual host object has reference to route object. in F5 Distributed Cloud.
10
+ Manages route object in a given namespace. Route object is list of route rules. Each rule has match condition to match incoming requests and actions to take on matching requests. in F5 Distributed Cloud.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -2,12 +2,12 @@
2
2
  page_title: "f5xc_site Data Source - terraform-provider-f5xc"
3
3
  subcategory: "Uncategorized"
4
4
  description: |-
5
- Manages a Site resource in F5 Distributed Cloud for gcp vpc site specification. configuration.
5
+ Manages a Site resource in F5 Distributed Cloud for aws vpc site specification. configuration.
6
6
  ---
7
7
 
8
8
  # f5xc_site (Data Source)
9
9
 
10
- Manages a Site resource in F5 Distributed Cloud for gcp vpc site specification. configuration.
10
+ Manages a Site resource in F5 Distributed Cloud for aws vpc site specification. configuration.
11
11
 
12
12
  ~> **Note** For more information about this data source, please refer to the [F5 XC API Documentation](https://docs.cloud.f5.com/docs/api/).
13
13
 
@@ -32,7 +32,7 @@ resource "f5xc_address_allocator" "example" {
32
32
  }
33
33
 
34
34
  # Resource-specific configuration
35
- # Address Allocation Scheme. Decides the scheme to be used ...
35
+ # Decides the scheme to be used to allocate addresses from ...
36
36
  address_allocation_scheme {
37
37
  # Configure address_allocation_scheme settings
38
38
  }
@@ -58,11 +58,11 @@ resource "f5xc_address_allocator" "example" {
58
58
 
59
59
  ### Spec Argument Reference
60
60
 
61
- <a id="address-allocation-scheme"></a>&#x2022; [`address_allocation_scheme`](#address-allocation-scheme) - Optional Block<br>Address Allocation Scheme. Decides the scheme to be used to allocate addresses from the configured address pool<br>See [Address Allocation Scheme](#address-allocation-scheme) below for details.
61
+ <a id="address-allocation-scheme"></a>&#x2022; [`address_allocation_scheme`](#address-allocation-scheme) - Optional Block<br>Decides the scheme to be used to allocate addresses from the configured address pool<br>See [Address Allocation Scheme](#address-allocation-scheme) below for details.
62
62
 
63
- <a id="address-pool"></a>&#x2022; [`address_pool`](#address-pool) - Optional List<br>Address Pool. Address pool from which the allocator carves out subnets or addresses to its clients
63
+ <a id="address-pool"></a>&#x2022; [`address_pool`](#address-pool) - Optional List<br>Address pool from which the allocator carves out subnets or addresses to its clients
64
64
 
65
- <a id="mode"></a>&#x2022; [`mode`](#mode) - Optional String Defaults to `LOCAL`<br>Possible values are `LOCAL`, `GLOBAL_PER_SITE_NODE`<br>[Enum: LOCAL|GLOBAL_PER_SITE_NODE] Allocator Mode. Mode of the address allocator Address allocator is for VERs within the local cluster or site Allocation is per site and then per node
65
+ <a id="mode"></a>&#x2022; [`mode`](#mode) - Optional String Defaults to `LOCAL`<br>Possible values are `LOCAL`, `GLOBAL_PER_SITE_NODE`<br>[Enum: LOCAL|GLOBAL_PER_SITE_NODE] Mode of the address allocator Address allocator is for VERs within the local cluster or site Allocation is per site and then per node
66
66
 
67
67
  <a id="timeouts"></a>&#x2022; [`timeouts`](#timeouts) - Optional Block<br>See [Timeouts](#timeouts) below for details.
68
68
 
@@ -78,11 +78,11 @@ In addition to all arguments above, the following attributes are exported:
78
78
 
79
79
  An [`address_allocation_scheme`](#address-allocation-scheme) block supports the following:
80
80
 
81
- <a id="unit-44a05d"></a>&#x2022; [`allocation_unit`](#unit-44a05d) - Optional Number<br>Allocation Unit. Prefix length indicating the size of each allocated subnet. For example, if this is specified as 30, subnets of /30 will be allocated from the given address pool
81
+ <a id="unit-44a05d"></a>&#x2022; [`allocation_unit`](#unit-44a05d) - Optional Number<br>Prefix length indicating the size of each allocated subnet. For example, if this is specified as 30, subnets of /30 will be allocated from the given address pool
82
82
 
83
- <a id="offset-3d4118"></a>&#x2022; [`local_interface_address_offset`](#offset-3d4118) - Optional Number<br>Local Interface Address Offset. This is used to derive address for the local interface from the allocated subnet. If Local Interface Address Type is set to 'Offset from beginning of Subnet', this offset value is added to the allocated subnet and used as the local interface address. For example, if the allocated subnet is 169.254.0.0/30 and offset is set to 2 with Local Interface Address Type set to 'Offset from beginning of Subnet', local interface address of 169.254.0.2 is used. If Local Interface Address Type is set to 'Offset from end of Subnet', this offset value is subtracted from the end of the allocated subnet and used as the local interface address. For example, if the allocated subnet is 169.254.0.0/30 and offset is set to 1 with Local Interface Address Type set to 'Offset from end of Subnet', local interface address of 169.254.0.2 is used
83
+ <a id="offset-3d4118"></a>&#x2022; [`local_interface_address_offset`](#offset-3d4118) - Optional Number<br>Used to derive address for the local interface from the allocated subnet. If Local Interface Address Type is set to 'Offset from beginning of Subnet', this offset value is added to the allocated subnet and used as the local interface address. For example, if the allocated subnet is
84
84
 
85
- <a id="type-3a6e24"></a>&#x2022; [`local_interface_address_type`](#type-3a6e24) - Optional String Defaults to `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`<br>Possible values are `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`, `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END`, `LOCAL_INTERFACE_ADDRESS_FROM_PREFIX`<br>[Enum: LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN|LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END|LOCAL_INTERFACE_ADDRESS_FROM_PREFIX] Local Interface Address Type. Dictates how local interface address is derived from the allocated subnet Use Nth address of the allocated subnet as the local interface address, N being the Local Interface Address Offset. For example, if the allocated subnet is 169.254.0.0/30, Local Interface Address Offset is set to 2 and Local Interface Address Type is set to 'Offset from beginning of Subnet', local address of 169.254.0.2 is used. Use Nth last address of the allocated subnet as the local interface address, N being the Local Interface Address Offset. For example, if the allocated subnet is 169.254.0.0/30, Local Interface Address Offset is set to 1 and Local Interface Address Type is set to 'Offset from end of Subnet', local address of 169.254.0.2 is used. This case is used for external_connector
85
+ <a id="type-3a6e24"></a>&#x2022; [`local_interface_address_type`](#type-3a6e24) - Optional String Defaults to `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`<br>Possible values are `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN`, `LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END`, `LOCAL_INTERFACE_ADDRESS_FROM_PREFIX`<br>[Enum: LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_BEGIN|LOCAL_INTERFACE_ADDRESS_OFFSET_FROM_SUBNET_END|LOCAL_INTERFACE_ADDRESS_FROM_PREFIX] Dictates how local interface address is derived from the allocated subnet Use Nth address of the allocated subnet as the local interface address, N being the Local Interface Address Offset. For example, if the allocated subnet is 169.254.0.0/30, Local Interface Address Offset is set to 2 and
86
86
 
87
87
  #### Timeouts
88
88