Facets Module MCP Server

Facets Module MCP Server

Enables creation and management of Terraform modules for Facets.cloud infrastructure with interactive generation, validation, forking, testing, and deployment workflows through secure file operations and FTF CLI integration.

Category
访问服务器

README

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.

  • Module Forking
    Fork existing modules from the Facets control plane to create customized variants. Supports discovering available modules, updating metadata, and customizing functionality while preserving the original module structure.

  • Supplementary Instructions Support
    Automatically reads additional project-specific instructions from the mcp_instructions directory at the root level, allowing teams to define custom requirements, constraints, and guidelines that supplement the default module generation behavior.

  • Module Preview and Testing
    Comprehensive deployment workflow supporting module preview, testing in dedicated test projects, and real-time deployment monitoring with status checks and logs. You will need a test project with a running environment and an enabled resource added for the module being tested (to be done manually from the Facets UI).

  • Cloud Environment Integration
    Supports multiple cloud providers and automatically extracts git repository metadata to enrich module previews.

Available MCP Tools

Tool Name Description
FIRST_STEP_get_instructions Loads all module writing instructions from the module_instructions directory and supplementary instructions from mcp_instructions. Always call this first.
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.
edit_file_block Apply surgical edits to specific blocks of text in files. Makes precise changes without rewriting entire files. Cannot edit outputs.tf or facets.yaml files.
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, variables.tf, etc.) safely. Excludes outputs.tf and facets.yaml.
write_outputs Writes the outputs.tf file for a module with output attributes and interfaces in a local block.
write_readme_file Writes a README.md file for the module directory with AI-generated content.
write_generic_file Writes files generically with working directory and file type checks. Path: facets_mcp/tools/module_files.py
generate_module_with_user_confirmation Generates a new Terraform module scaffold with dry-run preview and user confirmation.
validate_module Validates a Terraform module directory using FTF CLI standards and checks output types.
push_preview_module_to_facets_cp Previews a module by pushing a test version to the control plane with git context extracted automatically.
register_output_type Registers a new output type in the Facets control plane with interfaces and attributes and providers.
get_output_type_details Retrieves details for a specific output type from the Facets control plane.
find_output_types_with_provider Finds all output types that include a specific provider source for module configurations.
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.
list_test_projects Retrieves and returns the names of all available test projects for deployment.
test_already_previewed_module Tests a module that has been previewed by deploying it to a specified test project.
check_deployment_status Checks the status of a deployment with optional waiting for completion.
get_deployment_logs Retrieves logs for a specific deployment.
list_modules_for_fork Lists all available modules from the control plane that can be forked, displaying them in a compact format for easy selection.
fork_existing_module Forks an existing module by downloading it and updating its metadata (flavor and version). Supports dry-run preview and user confirmation.

Prerequisites

The MCP Server requires uv for MCP orchestration.

The package is available on PyPI: facets-module-mcp

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": "uvx",
      "args": [
        "facets-module-mcp@latest",
        "/Path/to/working-directory" 
      ],
      "env": {
        "FACETS_PROFILE": "default",
        "FACETS_USERNAME": "<YOUR_USERNAME>",
        "FACETS_TOKEN": "<YOUR_TOKEN>",
        "CONTROL_PLANE_URL": "<YOUR_CONTROL_PLANE_URL>"
      }
    }
  }
}

For a locally cloned repository, use:

{
  "mcpServers": {
    "facets-module": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/your/cloned/facets-module-mcp/facets_mcp",
        "run",
        "facets_server.py",
        "/path/to/working-directory"
      ],
      "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, edit_file_block, write_config_files, etc.) for Terraform code management.

  • Use FTF CLI integration tools for module scaffolding, validation, and preview workflows.

  • Complete deployment flow: preview modules with push_preview_module_to_facets_cp, test on dedicated test projects with test_already_previewed_module, and monitor progress using check_deployment_status and get_deployment_logs.

  • Employ MCP prompts like generate_new_module to guide module generation interactively, or use fork_existing_module to customize existing modules.

  • All destructive actions require explicit user confirmation and dry-run previews.


Module Forking Use Cases

The MCP server now supports forking existing modules from the Facets control plane. Use the "Fork Existing Module" prompt to access a guided workflow for:

  • Security enhancements: Fork a basic module to add additional security controls or compliance requirements
  • Cloud provider adaptations: Adapt modules for different cloud providers while maintaining core functionality
  • Performance optimizations: Create high-performance variants of existing modules with enhanced configurations
  • Feature customizations: Add organization-specific features or integrations to existing modules
  • Version updates: Modernize older modules with updated provider versions or new Terraform features

The fork workflow maintains the original module structure while allowing you to customize metadata, variables, resources, and outputs to meet your specific requirements.


Example Usage

For a comprehensive example of how to use this MCP server with Claude, check out this chat session: Creating a Terraform Module with Facets MCP

This example demonstrates the complete workflow from module generation to testing and deployment.


📘 Additional Guide

For a detailed, real-world walkthrough of building a secure S3 bucket module with AI on the Facets platform, check out
GUIDE.md – Building Facets Modules with AI: A Practical Guide

This guide demonstrates the full conversation flow—requirements, design refinement, implementation review, validation, testing, and iteration—using a developer-focused example tailored for a banking use case.


License

This project is licensed under the MIT License. You are free to use, modify, and distribute it under its terms.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选