MCP server for Sceptre CloudFormation management
Project description
sceptre-mcp-server
A Model Context Protocol (MCP) server that exposes Sceptre CloudFormation management operations as tools for AI agents.
What it does
AI agents (Claude, Kiro, etc.) can connect to this server and manage AWS CloudFormation stacks through Sceptre's Python API. The server exposes 22 tools covering the full stack lifecycle:
- Stack lifecycle — create, update, delete, launch
- Querying — status, describe, outputs, resources, events
- Templates — generate, validate
- Diff & drift — diff against deployed state, detect and show drift
- Change sets — create, describe, list, execute, delete
- Discovery — list stacks, dump resolved config
Requirements
- Python 3.10+
- A configured Sceptre project with
config/andtemplates/directories
Installation
pip install sceptre-mcp-server
Or run directly without installing:
uvx sceptre-mcp-server
MCP Client Configuration
Kiro
Add to .kiro/settings/mcp.json:
{
"mcpServers": {
"sceptre": {
"command": "uvx",
"args": ["sceptre-mcp-server"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"sceptre": {
"command": "uvx",
"args": ["sceptre-mcp-server"]
}
}
}
Tools Reference
Every tool requires a sceptre_project_dir parameter pointing to your Sceptre project root. Stack-specific tools also require a stack_path relative to the config/ directory.
Stack Lifecycle
| Tool | Parameters | Description |
|---|---|---|
create_stack |
sceptre_project_dir, stack_path |
Create a new CloudFormation stack |
update_stack |
sceptre_project_dir, stack_path |
Update an existing stack |
delete_stack |
sceptre_project_dir, stack_path |
Delete a stack |
launch_stack |
sceptre_project_dir, stack_path |
Create or update a stack as needed |
Querying
| Tool | Parameters | Description |
|---|---|---|
get_stack_status |
sceptre_project_dir, stack_path |
Get current stack status |
describe_stack |
sceptre_project_dir, stack_path |
Get full stack details |
describe_stack_outputs |
sceptre_project_dir, stack_path |
Get stack output values |
describe_stack_resources |
sceptre_project_dir, stack_path |
List stack resources |
describe_stack_events |
sceptre_project_dir, stack_path |
Get stack event history |
Templates
| Tool | Parameters | Description |
|---|---|---|
generate_template |
sceptre_project_dir, stack_path |
Render the CloudFormation template |
validate_template |
sceptre_project_dir, stack_path |
Validate template with CloudFormation |
Diff & Drift
| Tool | Parameters | Description |
|---|---|---|
diff_stack |
sceptre_project_dir, stack_path, diff_type |
Diff local template vs deployed (deepdiff or difflib) |
drift_detect |
sceptre_project_dir, stack_path |
Detect configuration drift |
drift_show |
sceptre_project_dir, stack_path, drifted_only |
Show drift details |
Change Sets
| Tool | Parameters | Description |
|---|---|---|
create_change_set |
sceptre_project_dir, stack_path, change_set_name |
Create a change set |
describe_change_set |
sceptre_project_dir, stack_path, change_set_name |
Describe a change set |
list_change_sets |
sceptre_project_dir, stack_path |
List all change sets |
execute_change_set |
sceptre_project_dir, stack_path, change_set_name |
Execute a change set |
delete_change_set |
sceptre_project_dir, stack_path, change_set_name |
Delete a change set |
Discovery & Configuration
| Tool | Parameters | Description |
|---|---|---|
list_stacks |
sceptre_project_dir, stack_path (optional) |
List stacks in the project |
dump_config |
sceptre_project_dir, stack_path |
Dump resolved stack configuration |
Example Usage
Once connected, an AI agent can invoke tools like:
> List all stacks in my project at /home/user/infra
Calls: list_stacks(sceptre_project_dir="/home/user/infra")
> What's the status of the dev VPC stack?
Calls: get_stack_status(sceptre_project_dir="/home/user/infra", stack_path="dev/vpc.yaml")
> Show me what would change if I deploy the prod API stack
Calls: diff_stack(sceptre_project_dir="/home/user/infra", stack_path="prod/api.yaml")
AWS Configuration
Sceptre uses the standard AWS credential chain. To specify a profile or region, pass environment variables through your MCP client config:
{
"mcpServers": {
"sceptre": {
"command": "uvx",
"args": ["sceptre-mcp-server"],
"env": {
"AWS_PROFILE": "my-profile",
"AWS_DEFAULT_REGION": "us-west-2"
}
}
}
}
Project Specs
Design documentation for this project lives in the .kiro/specs/sceptre-mcp-server/ directory:
- Requirements — 22 functional requirements covering server init, stack lifecycle, querying, templates, diff/drift, change sets, config dump, parameter conventions, error handling, AWS configuration, and distribution
- Design — Architecture, component design, tool specifications, error handling strategy, response format, and traceability matrix
- Tasks — Implementation task breakdown with sub-tasks
Development
# Clone and install dependencies
git clone <repo-url>
cd sceptre-mcp-server
poetry install
Running Tests
Run tests directly with pytest:
poetry run pytest -q
Run tests through tox for a specific Python version:
# Use the virtualenv tox binary directly (poetry run intercepts flags like -e)
$(poetry env info -p)/bin/tox -e py312
Run against all configured Python versions (3.10–3.13, skips missing interpreters):
$(poetry env info -p)/bin/tox
Pass additional pytest arguments via --:
$(poetry env info -p)/bin/tox -e py312 -- -k "test_create_stack" -q
License
Apache-2.0
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 sceptre_mcp_server-1.0.0.tar.gz.
File metadata
- Download URL: sceptre_mcp_server-1.0.0.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.3 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41536659f0840059108d936b51dc11a32b76874904d80e65049e68777c55ae16
|
|
| MD5 |
3f718280f3273934966eeac848eeba44
|
|
| BLAKE2b-256 |
1cf596014569f065829ced6d7cf74328a231c0543655bc9eefddb6e1e5483870
|
File details
Details for the file sceptre_mcp_server-1.0.0-py3-none-any.whl.
File metadata
- Download URL: sceptre_mcp_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.3 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06be631c0e1dcc741fd0690155d36ad32162c0007ac2b1fc03b843a1f4176269
|
|
| MD5 |
90ca7828aa82155dd341a1731053b4e4
|
|
| BLAKE2b-256 |
e65ebb981d33ec22093c64ad908578ad00917e93dedc601d9836246f301de756
|