MCP server for Base2 open-source AWS tools — documentation, guidance, and CLI execution
Project description
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
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 base2_mcp-0.2.1.tar.gz.
File metadata
- Download URL: base2_mcp-0.2.1.tar.gz
- Upload date:
- Size: 54.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2225e53d881aeca77951d78b68c1a82cf987b63cb711b5a78c8645f0b2157933
|
|
| MD5 |
f09ca238aaa415c913f00a776c8993b5
|
|
| BLAKE2b-256 |
1d3f3958e6f36eae37eb17e2790280ee2a92a4176d138c9547dbea4f6fc7a28f
|
Provenance
The following attestation bundles were made for base2_mcp-0.2.1.tar.gz:
Publisher:
publish.yml on base2Services/base2-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
base2_mcp-0.2.1.tar.gz -
Subject digest:
2225e53d881aeca77951d78b68c1a82cf987b63cb711b5a78c8645f0b2157933 - Sigstore transparency entry: 1822165522
- Sigstore integration time:
-
Permalink:
base2Services/base2-mcp@980dbcb34a42f30c74f046ef0f0b0ca7471b3d6c -
Branch / Tag:
refs/tags/0.2.1 - Owner: https://github.com/base2Services
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@980dbcb34a42f30c74f046ef0f0b0ca7471b3d6c -
Trigger Event:
release
-
Statement type:
File details
Details for the file base2_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: base2_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 53.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf47b38a464fb604443e3297e0f10b9c52a303639d478bdf7a22ebf32e8763ff
|
|
| MD5 |
c0e94292d8c7ed9c27ca1c4a25602e58
|
|
| BLAKE2b-256 |
3b51721904a98afd3b749b468a9ceb8eff5cbc59137eefaaf27ad8abde1140fa
|
Provenance
The following attestation bundles were made for base2_mcp-0.2.1-py3-none-any.whl:
Publisher:
publish.yml on base2Services/base2-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
base2_mcp-0.2.1-py3-none-any.whl -
Subject digest:
bf47b38a464fb604443e3297e0f10b9c52a303639d478bdf7a22ebf32e8763ff - Sigstore transparency entry: 1822165556
- Sigstore integration time:
-
Permalink:
base2Services/base2-mcp@980dbcb34a42f30c74f046ef0f0b0ca7471b3d6c -
Branch / Tag:
refs/tags/0.2.1 - Owner: https://github.com/base2Services
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@980dbcb34a42f30c74f046ef0f0b0ca7471b3d6c -
Trigger Event:
release
-
Statement type: