@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 +178 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +668 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.d.ts +140 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +122 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/services/api-specs.d.ts +47 -0
- package/dist/services/api-specs.d.ts.map +1 -0
- package/dist/services/api-specs.js +258 -0
- package/dist/services/api-specs.js.map +1 -0
- package/dist/services/documentation.d.ts +26 -0
- package/dist/services/documentation.d.ts.map +1 -0
- package/dist/services/documentation.js +217 -0
- package/dist/services/documentation.js.map +1 -0
- package/dist/types.d.ts +91 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +9 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -0
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.
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|