AWS FinOps

Production-ready MCP server for AWS FinOps enabling cloud resource optimization, cost management, and performance monitoring.
  • python

0

GitHub Stars

python

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

You can run this AWS FinOps MCP Server to automate cloud optimization, cost management, and performance monitoring. It provides a production-ready MCP implementation that can operate in standard stdio mode for direct MCP client integration or in HTTP server mode for remote, distributed access across environments.

How to use

Use this MCP server with a client that invokes MCP tools to analyze AWS resources, identify unused resources, optimize costs, and monitor performance. You can run locally for development, or deploy to AWS Bedrock AgentCore for scalable, production-grade operation. You can filter the available tools by category to speed up loading and focus on the exact optimization areas you care about.

How to install

Prerequisites: ensure you have Python installed on your system. You will also need a suitable environment for running commands in the target mode (stdio or HTTP). Then you can install the MCP server package, run the server locally for development, or deploy to AWS Bedrock AgentCore for production.

# Local development: install in editable mode
pip install -e .

# Run in stdio mode (direct MCP client integration)
python -m aws_finops_mcp

# Run in HTTP server mode (remote access) with default port
MCP_SERVER_MODE=http
MCP_SERVER_PORT=8000
python -m aws_finops_mcp

# Optional: set category filtering to load only needed tools
export MCP_TOOL_CATEGORIES="cleanup,cost"
python -m aws_finops_mcp

# Quick Bedrock AgentCore deployment (production-ready)
pip install bedrock-agentcore-starter-toolkit
agentcore launch
"} ,{

Deployment and configuration

You have two primary deployment methods. The standard method runs the MCP server locally in stdio mode for direct client integration. The production-ready method deploys the MCP server to Amazon Bedrock AgentCore for scalable, agent-based operation. When deploying to Bedrock AgentCore, you typically prepare an ECR repository, adjust configuration to use the AWS Pillar MCP server, launch the AgentCore runtime, and test the deployment with an invocation that exercises a cost-optimization prompt.

# Bedrock AgentCore deployment (recommended) – quick flow
# 1. Create ECR repository
./create-ecr-repo.sh

# 2. Update configuration to use Bedrock MCP server
sed -i 's/ecr: auto/ecr: aws-pillar-mcp-server/' .bedrock_agentcore.yaml

# 3. Deploy to AWS
agentcore launch

# 4. Test your deployment
agentcore invoke '{"prompt": "find unused resources in us-east-1"}'
"} ,{

Configuration and tool filtering

You can control which tools load by category. This helps you focus on the most relevant optimization areas and speeds up startup. The server supports categories such as cleanup and cost, and you can switch between all tools or a subset as needed.

# Load only cost and cleanup tools (25 tools instead of 76)
export MCP_TOOL_CATEGORIES="cost,cleanup"
python -m aws_finops_mcp

# Default: load all tools
export MCP_TOOL_CATEGORIES="all"
python -m aws_finops_mcp
"} ,{

HTTP vs stdio modes

StdIO mode provides native, direct MCP client integration via standard input and output streams. HTTP server mode exposes REST endpoints for remote access, enabling you to invoke tools over the network or from remote clients.

# HTTP server example (basic invocation)
# Start in HTTP mode (port 8000 by default)
export MCP_SERVER_MODE=http
export MCP_SERVER_PORT=8000
python -m aws_finops_mcp

# Health endpoint example (remote access)
curl http://localhost:8000/health

# Execute a tool via HTTP
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"tool": "get_cost_by_region", "arguments": {"region_name": "us-east-1"}}'
"} ,{

Security and permissions

This MCP server supports IAM-based permissions and policy configurations to control which tools and data can be accessed. When running in production, apply least-privilege policies to your IAM roles and users. Use encryption for data at rest and in transit as applicable to your deployment environment.

Notes and troubleshooting

If you encounter issues during setup or deployment to Bedrock AgentCore, follow the guided deployment steps for troubleshooting. For development, ensure your Python environment has the correct dependencies installed and that environment variables are set as needed for your chosen mode.

Available tools

find_unused_lambda_functions

Identify Lambda functions that have not been invoked recently to reduce idle costs and potential exposure.

get_cost_by_region

Provide cost breakdowns by AWS region to identify high-spend areas and opportunities for optimization.

get_cost_by_service

Analyze costs by AWS service to target optimization efforts on the most expensive resources.

find_underutilized_ec2_instances

Detect EC2 instances with low utilization to consider downsizing or right-sizing.

get_savings_plans_recommendations

Suggest Savings Plans options to reduce compute costs over time.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational