@robinmordasiewicz/f5xc-terraform-mcp 2.3.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.
package/README.md ADDED
@@ -0,0 +1,178 @@
1
+ # F5 Distributed Cloud Terraform Provider MCP Server
2
+
3
+ A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to the F5 Distributed Cloud (F5XC) Terraform provider documentation and OpenAPI specifications.
4
+
5
+ ## Features
6
+
7
+ - **144+ Resource Documentation**: Complete Terraform resource docs with arguments, attributes, and examples
8
+ - **270+ OpenAPI Specifications**: Full F5XC API specifications for all services
9
+ - **Intelligent Search**: Search across documentation and API specs with relevance scoring
10
+ - **Schema Exploration**: Browse and query API schema definitions
11
+ - **Endpoint Discovery**: Find API endpoints by pattern across all specifications
12
+
13
+ ## Installation
14
+
15
+ ### From npm
16
+
17
+ ```bash
18
+ npm install -g @robinmordasiewicz/f5xc-terraform-mcp
19
+ ```
20
+
21
+ ### From Source
22
+
23
+ ```bash
24
+ cd mcp-server
25
+ npm install
26
+ npm run build
27
+ ```
28
+
29
+ ## Configuration
30
+
31
+ ### Claude Desktop
32
+
33
+ Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
34
+
35
+ ```json
36
+ {
37
+ "mcpServers": {
38
+ "f5xc-terraform": {
39
+ "command": "npx",
40
+ "args": ["-y", "@robinmordasiewicz/f5xc-terraform-mcp"]
41
+ }
42
+ }
43
+ }
44
+ ```
45
+
46
+ Or if running from source:
47
+
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "f5xc": {
52
+ "command": "node",
53
+ "args": ["/path/to/terraform-provider-f5xc/mcp-server/dist/index.js"]
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ ## Available Tools
60
+
61
+ ### Documentation Tools
62
+
63
+ | Tool | Description |
64
+ |------|-------------|
65
+ | `f5xc_search_docs` | Search provider documentation by keyword |
66
+ | `f5xc_get_doc` | Get complete documentation for a resource |
67
+ | `f5xc_list_docs` | List all available documentation |
68
+
69
+ ### API Specification Tools
70
+
71
+ | Tool | Description |
72
+ |------|-------------|
73
+ | `f5xc_search_api_specs` | Search OpenAPI specifications |
74
+ | `f5xc_get_api_spec` | Get a specific API specification |
75
+ | `f5xc_find_endpoints` | Find API endpoints by URL pattern |
76
+ | `f5xc_get_schema_definition` | Get a schema definition from a spec |
77
+ | `f5xc_list_definitions` | List all definitions in a spec |
78
+
79
+ ### Utility Tools
80
+
81
+ | Tool | Description |
82
+ |------|-------------|
83
+ | `f5xc_get_summary` | Get overview of all available docs and specs |
84
+
85
+ ## Usage Examples
86
+
87
+ ### Find HTTP Load Balancer Documentation
88
+
89
+ ```
90
+ User: How do I configure an HTTP load balancer in F5XC with Terraform?
91
+
92
+ Claude: [Uses f5xc_search_docs with query "http_loadbalancer"]
93
+ [Uses f5xc_get_doc with name "http_loadbalancer"]
94
+ ```
95
+
96
+ ### Discover API Endpoints
97
+
98
+ ```
99
+ User: What API endpoints are available for managing namespaces?
100
+
101
+ Claude: [Uses f5xc_find_endpoints with pattern "/namespaces"]
102
+ ```
103
+
104
+ ### Explore Schema Definitions
105
+
106
+ ```
107
+ User: What fields are available in the app_firewall configuration?
108
+
109
+ Claude: [Uses f5xc_get_api_spec with name "app_firewall"]
110
+ [Uses f5xc_list_definitions with spec_name "app_firewall"]
111
+ [Uses f5xc_get_schema_definition for specific type]
112
+ ```
113
+
114
+ ## Development
115
+
116
+ ### Build
117
+
118
+ ```bash
119
+ npm run build
120
+ ```
121
+
122
+ ### Development Mode (with auto-reload)
123
+
124
+ ```bash
125
+ npm run dev
126
+ ```
127
+
128
+ ### Type Check
129
+
130
+ ```bash
131
+ npm run typecheck
132
+ ```
133
+
134
+ ## Architecture
135
+
136
+ ```
137
+ mcp-server/
138
+ ├── src/
139
+ │ ├── index.ts # MCP server entry point
140
+ │ ├── types.ts # TypeScript type definitions
141
+ │ ├── schemas/ # Zod validation schemas
142
+ │ │ └── index.ts
143
+ │ └── services/ # Core services
144
+ │ ├── documentation.ts # Doc loading and search
145
+ │ └── api-specs.ts # OpenAPI spec handling
146
+ ├── package.json
147
+ ├── tsconfig.json
148
+ └── README.md
149
+ ```
150
+
151
+ ## Resources Served
152
+
153
+ ### Documentation Types
154
+
155
+ - **Resources**: Terraform resources (http_loadbalancer, origin_pool, namespace, etc.)
156
+ - **Data Sources**: Terraform data sources for reading existing resources
157
+ - **Functions**: Provider-defined functions (blindfold, blindfold_file)
158
+ - **Guides**: Step-by-step tutorials and how-to guides
159
+
160
+ ### API Specifications
161
+
162
+ All F5 Distributed Cloud public APIs including:
163
+ - HTTP/TCP Load Balancers
164
+ - Origin Pools
165
+ - Application Firewalls (WAF)
166
+ - Namespaces
167
+ - DNS Management
168
+ - Network Policies
169
+ - Cloud Sites (AWS, Azure, GCP)
170
+ - And 260+ more...
171
+
172
+ ## License
173
+
174
+ MIT
175
+
176
+ ## Contributing
177
+
178
+ Contributions welcome! Please see the main [terraform-provider-f5xc](https://github.com/robinmordasiewicz/terraform-provider-f5xc) repository for contribution guidelines.
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * F5 Distributed Cloud Terraform Provider MCP Server
4
+ *
5
+ * This MCP server provides AI assistants with access to:
6
+ * - Terraform provider documentation (resources, data sources, functions, guides)
7
+ * - F5 Distributed Cloud OpenAPI specifications (270+ specs)
8
+ * - Search and query capabilities for both documentation and API specs
9
+ *
10
+ * Version is synced with the Terraform provider release version.
11
+ * @see https://github.com/robinmordasiewicz/terraform-provider-f5xc
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}