base2-mcp
MCP server for Base2 open-source AWS tools — documentation, guidance, and CLI execution.
Supported Tools
| Tool | Description | Install |
|---|---|---|
| cfhighlander | CloudFormation DSL and component library | gem install cfhighlander |
| shelvery | Automated AWS backups (EBS, RDS, EC2, Redshift, DocumentDB) | pip install shelvery |
| cfn-guardian | CloudWatch alarm management via CloudFormation | gem install cfn-guardian |
| monitorable | CloudWatch alarm coverage auditing | Clone repo |
| cfn-vpn | AWS Client VPN management via CloudFormation | gem install cfn-vpn |
| bastion-cli | Temporary bastion EC2 instances via Session Manager | GitHub releases |
Quick Start
Cursor IDE (Recommended)
Add to your .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"base2": {
"command": "uvx",
"args": ["--upgrade", "base2-mcp"]
}
}
}
No manual install needed — uvx fetches the package from PyPI automatically and --upgrade ensures you always get the latest version on server restart.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"base2": {
"command": "uvx",
"args": ["--upgrade", "base2-mcp"]
}
}
}
Alternative: pin to a specific version
If you need a stable version that won't change unexpectedly:
{
"mcpServers": {
"base2": {
"command": "uvx",
"args": ["base2-mcp==0.1.0"]
}
}
}
Prerequisite: uv
uvx is part of uv, a fast Python package manager. Install it with:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Or via pip
pip install uv
What It Does
This MCP server gives AI agents two capabilities for each tool:
-
Documentation — Embedded docs with CLI usage, configuration, examples, and best practices. The agent can read these to understand any tool without you explaining it.
-
CLI Execution — Wrapper tools that run the actual CLI commands (
cfhighlander cfcompile,shelvery ebs create_backups,bastion launch, etc.) and return structured output.
Available MCP Tools
Discovery:
list_base2_tools— Overview of all 6 toolsget_tool_docs— Detailed documentation for a specific tool
cfhighlander:
cfhighlander_docs/cfhighlander_compile/cfhighlander_publish/cfhighlander_test/cfhighlander_validate
shelvery:
shelvery_docs/shelvery_create_backups/shelvery_clean_backups/shelvery_pull_shared_backups
cfn-guardian:
guardian_docs/guardian_compile/guardian_deploy/guardian_show_alarms/guardian_show_resources
monitorable:
monitorable_docs/monitorable_audit
cfn-vpn:
cfn_vpn_docs/cfn_vpn_init/cfn_vpn_modify/cfn_vpn_routes/cfn_vpn_sessions
bastion-cli:
bastion_docs/bastion_launch/bastion_connect/bastion_terminate/bastion_port_forward
Prerequisites
The MCP server itself only needs Python 3.11+ and the mcp package. The CLI tools it wraps need to be installed separately — the server will tell the agent if a tool is missing and how to install it.
Development
# Install dependencies
pip install -r requirements.txt -r requirements-dev.txt
# Run tests
pytest tests/ -v
# Run the server locally (stdio mode)
python src/app.py
Architecture
base2-mcp/
├── src/
│ ├── app.py # FastMCP entry point (stdio transport)
│ ├── docs/ # Embedded markdown documentation
│ │ ├── __init__.py # Doc loader utility
│ │ ├── cfhighlander.md
│ │ ├── shelvery.md
│ │ ├── guardian.md
│ │ ├── monitorable.md
│ │ ├── cfn_vpn.md
│ │ └── bastion.md
│ ├── executor/
│ │ └── cli_runner.py # Shared subprocess executor
│ └── tools/ # One module per tool
│ ├── overview_tools.py # list_base2_tools, get_tool_docs
│ ├── cfhighlander_tools.py
│ ├── shelvery_tools.py
│ ├── guardian_tools.py
│ ├── monitorable_tools.py
│ ├── cfn_vpn_tools.py
│ └── bastion_tools.py
├── tests/ # pytest suite (56 tests)
├── pyproject.toml
├── requirements.txt
└── requirements-dev.txt
Metadata
Release files for base2-mcp 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| base2_mcp-0.2.1.tar.gz | 54.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| base2_mcp-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.8 kB
Release files / base2_mcp-0.2.1.tar.gz
| Download URL | base2_mcp-0.2.1.tar.gz |
|---|---|
| Size | 54.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2225e53d881aeca77951d78b68c1a82cf987b63cb711b5a78c8645f0b2157933
|
|
BLAKE2b-256 checksum How to use checksums |
1d3f3958e6f36eae37eb17e2790280ee2a92a4176d138c9547dbea4f6fc7a28f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.
Transparency logRelease files / base2_mcp-0.2.1-py3-none-any.whl
| Download URL | base2_mcp-0.2.1-py3-none-any.whl |
|---|---|
| Size | 53.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bf47b38a464fb604443e3297e0f10b9c52a303639d478bdf7a22ebf32e8763ff
|
|
BLAKE2b-256 checksum How to use checksums |
3b51721904a98afd3b749b468a9ceb8eff5cbc59137eefaaf27ad8abde1140fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.
Transparency log