BedrockOps
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BedrockOpsrun a read-only health check on my AWS account and log it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BedrockOps — Autonomous Cloud Operations & Audit Agent
Open-source (MIT) cloud operations agent scaffold for the Build, Ship, Shape: Amazon Developer Hackathon (Alexa+ track; AWS Builder + Open Source mini-challenges).
Status — read this first (2026-10-06)
server.pyis built on the official MCP Python SDK (mcp==2.3.0,MCPServer— the v2 name for FastMCP) and serves Streamable HTTP at/mcp. Verified on this machine:python -m unittest tests/test_mcp.py→ exit 0, 8 tests OK, including raw JSON-RPC initialize negotiating 2025-11-25, tools/list, and tools/call for both tools.A live server + the official SDK client (
ClientSessionoverstreamable_http_client) listed both tools and called both successfully, also negotiating protocol 2025-11-25.Full proof in
TEST_RECEIPT.md.
Wired 2026-10-06, proven locally where possible:
bedrock_routetool callsbedrock_agent.invoke()— gated prompts stop atrequires_approval; with no AWS credentials in this environment it honestly returns"live": false(fallback_reason NoCredentialsError), tested.system_probewithBEDROCKOPS_LIVE=1makes one real read-only AWS call and, in this credential-less environment, correctly returnsUNREACHABLE / live_failedinstead of faking HEALTHY, tested.audit_ledgerpersists to DynamoDB whenAUDIT_TABLE_NAMEis set: the PutItem path is proven against a fake client in tests, and a failing client is reported (persisted: false), never faked.Not yet proven, because this VM has no AWS credentials (checked: no ~/.aws, no AWS env keys, SDK raises NoCredentialsError): a live Bedrock InvokeModel call, a live AWS probe succeeding, and a real DynamoDB write. Those need one run at Ricket's PC with his own AWS login. See
.env.examplefor the exact switches.Terraform now defines the DynamoDB table plus a least-privilege IAM policy matching exactly what the code calls (Bedrock invoke/list, Lambda/DynamoDB list, DynamoDB PutItem to the one table). HCL files parse (python-hcl2);
terraform validate/applyhas not run — no terraform binary on this VM. There is deliberately no Lambda function: the code has no Lambda handler, so none is claimed.The
/mcp/v1/*REST/SSE routes and/healthare a legacy compatibility shim from the first prototype, kept working and tested, but they are not part of MCP. The MCP endpoint is/mcp.
Related MCP server: aws-readonly-mcp
Layout
server.py Official MCP SDK server (Streamable HTTP, /mcp) + legacy shim
bedrock_agent.py Bedrock router + read-only AWS probes (lazy boto3, offline fallback)
ledger.py SHA-256 audit ledger (memory + optional DynamoDB persistence)
terraform/main.tf DynamoDB audit table + least-privilege IAM policy
terraform/outputs.tf Table name / ARN, policy ARN outputs
tests/test_mcp.py unittest: MCP protocol, tools, gate, ledger, DynamoDB fake client
.env.example Runtime switches (no secrets)
requirements.txt
LICENSE MITSetup
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txtRun the tests
python -m unittest discover -s tests -v
# or, from the repo root:
python -m unittest tests/test_mcp.pyRun the server
python server.py
# MCP (Streamable HTTP): http://127.0.0.1:8000/mcp
# Health: http://127.0.0.1:8000/health
# Legacy shim: GET /mcp/v1/tools, POST /mcp/v1/executeOr uvicorn server:app --host 0.0.0.0 --port 8000 for the ASGI app.
Note for this VM only: local HTTP clients must run with the proxy vars
unset (env -u http_proxy -u https_proxy -u no_proxy ...), or httpx
misroutes localhost. This is an environment quirk, not an app setting.
Demo
See demo/RECORDING_RUNBOOK.md for the one-take, under-3-minute
recording script, demo/demo_client.py for the client that drives the
six narrated steps, and demo/demo_transcript_2026-10-06.txt for a
real offline run (stub/memory/live:false labels and all).
Infrastructure (optional, requires an AWS account)
cd terraform
terraform init
terraform plan # review before any apply; apply creates real resourcesWhat a judge should not yet conclude
The tests prove a real official-SDK MCP server speaking 2025-11-25
with three working tools, an approval gate, and a DynamoDB write path
proven against a fake client. They do not prove a live Bedrock call,
a successful live AWS probe, or a real DynamoDB write — this build VM
has no AWS credentials, and the code says so in every result
("live": false, persisted: false, UNREACHABLE). One credentialed
run at the owner's PC closes those three, using .env.example.
This server cannot be deployed
Maintenance
Related MCP Connectors
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA local MCP server that parses Terraform .tfstate files and lets AI agents audit enterprise infrastructure for security misconfigurations without requiring direct cloud credentials.MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that lets an LLM inspect an AWS account — list EC2 instances, S3 buckets, IAM users, and cost — with a structural guarantee against any mutations.MIT
- FlicenseAqualityDmaintenanceA self-hosted MCP server providing a governed interface for AI agents to interact with local Docker infrastructure, featuring a two-phase confirm protocol for state-changing operations and append-only audit logging.4-
- -licenseNot gradedqualityNot gradedmaintenanceAn MCP server that validates tool calls against JSON Schema, performs deterministic repair, redacts secrets, and maintains a hash-chained audit ledger.-