Facets Module MCP
Project description
Facets Module MCP Server
This MCP (Model Context Protocol) Server for the Facets Module assists in creating and managing Terraform modules for infrastructure as code. It integrates with Facets.cloud's FTF CLI, providing secure and robust tools for module generation, validation, and management to support cloud-native infrastructure workflows.
Key Features
-
Secure File Operations
Limits all file operations to within the working directory to ensure safety and integrity. -
Modular MCP Tools
Offers comprehensive tools for file listing, reading, writing, module generation, validation, and previews. All destructive or irreversible commands require explicit user confirmation and support dry-run previews. -
Facets Module Generation
Interactive prompt-driven workflows facilitate generation of Terraform modules with metadata, variable, and input management using FTF CLI. -
Cloud Environment Integration
Supports multiple cloud providers and automatically extracts git repository metadata to enrich module previews.
Available MCP Tools
| Tool Name | Description |
|---|---|
list_files |
Lists all files in the specified module directory securely within the working directory. |
read_file |
Reads the content of a file within the working directory. |
write_config_files |
Writes and validates facets.yaml configuration files with dry-run and diff previews. |
write_resource_file |
Writes Terraform resource files (main.tf, outputs.tf, etc.) safely. |
generate_module_with_user_confirmation |
Generates a new Terraform module scaffold with dry-run preview and user confirmation. |
run_ftf_validate_directory |
Validates a Terraform module directory using FTF CLI standards. |
run_ftf_preview_module |
Previews a module with git context extracted automatically. |
get_local_modules |
Scans and lists all local Terraform modules by searching for facets.yaml recursively, including loading outputs.tf content if present. |
search_modules_after_confirmation |
Searches modules by filtering for a string within facets.yaml files, supports pagination, and returns matched modules with details. |
Prerequisites
The MCP Server requires uv for MCP orchestration.
Install uv with Homebrew:
brew install uv
For other methods, see the official uv installation guide.
Integration with Claude
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"facets-module": {
"command": "uv",
"args": [
"--directory",
"/Path/to/mcp_server",
"run",
"facets_server.py",
"/Path/to/working-directory" # This should be the directory where your Terraform modules are checked out or a subdirectory containing the modules you want to work with
],
"env": {
"PYTHONUNBUFFERED": "1",
"FACETS_PROFILE": "default",
"FACETS_USERNAME": "<YOUR_USERNAME>",
"FACETS_TOKEN": "<YOUR_TOKEN>",
"CONTROL_PLANE_URL": "<YOUR_CONTROL_PLANE_URL>"
}
}
}
}
⚠ Replace <YOUR_USERNAME>, <YOUR_TOKEN>, and <YOUR_CONTROL_PLANE_URL> with your actual authentication data.
The uv runner automatically manages environment and dependency setup using the pyproject.toml file in the MCP directory.
If you have already logged into FTF, specifying FACETS_PROFILE is sufficient.
For token generation and authentication setup, please refer to the official Facets documentation:
https://readme.facets.cloud/reference/authentication-setup
Note: Similar setup is available in Cursor read here
Usage Highlights
-
Use core tools (
list_files,read_file,write_config_files, etc.) for Terraform code management. -
Use FTF CLI integration tools for module scaffolding, validation, and preview workflows.
-
Employ MCP prompts like
generate_new_moduleto guide module generation interactively. -
All destructive actions require explicit user confirmation and dry-run previews.
License
This project is licensed under the MIT License. You are free to use, modify, and distribute it under its terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file facets_module_mcp-0.1.0.tar.gz.
File metadata
- Download URL: facets_module_mcp-0.1.0.tar.gz
- Upload date:
- Size: 35.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
947be5abd08f0fa8af87b990f41232f3f4341e97780bcde4860616cdab470e1f
|
|
| MD5 |
98b8bb3afd5a92bea5dba6f905ec07a4
|
|
| BLAKE2b-256 |
bf34c1afa1b633ac79fd9b1fb2ead21218e60948635351b83caa5946ca9aa2ed
|
File details
Details for the file facets_module_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: facets_module_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efbf4a8d89465caa3aab0914683d0bace09cd1455e60625e5680b63d3347f62e
|
|
| MD5 |
3c5b7eab59f49e3d2beaafdf832929e4
|
|
| BLAKE2b-256 |
d43a5a62951620c7df2b5c8a15a03249bc540446bb6a7e1b2a71ee77a8355f3a
|