Open Source · MIT

MCP Infrastructure Layer

Your AI coding assistant
finally knows your infra.

Infrawise gives Claude Code and Cursor a real-time, deterministic map of your AWS services, databases, and IaC — so they stop writing code that assumes wrong indexes, missing queues, and stale schemas.

Get Started

Demo

Ask about your infra. Claude already knows.

infrawise start --claude opens Claude Code; asked about an SQS-triggered Lambda, Claude pulls the queue details from infrawise and answers with the exact event shape plus the queue's missing DLQ and visibility timeout risks
growing
MIT License
No telemetry · runs local

The Problem

AI writes wrong code.
Infrawise is the fix.

"New software developers don't write wrong code. Claude Code writes wrong code and they ship it."
Without Infrawise
# AI writes from assumptions
response = table.query(
  FilterExpression=Attr('userId').eq(user_id)
)
# ❌ Full table scan — GSI doesn't exist
With Infrawise
# AI knows your actual schema
response = table.query(
  IndexName='userId-createdAt-index',
  KeyConditionExpression=Key('userId').eq(user_id)
)
# ✅ Uses real GSI from suggest_gsi

Where It Helps

The bugs that only appear at runtime.

AI hallucinates queue types, event shapes, and filter policies. Infrawise gives it your actual infrastructure so it stops guessing.

analyze_function

Wrong Lambda event shape

AI guesses the handler signature. SQS, S3, and EventBridge all use different shapes — getting it wrong means silent undefined at runtime.

Without Infrawise
# AI guesses the payload structure
def handler(event, context):
    body = json.loads(event["body"])
    process(body["orderId"])
# ❌ SQS wraps in Records — event["body"] is None
With Infrawise
# analyze_function returns the exact event shape
def handler(event, context):
    body = json.loads(event["Records"][0]["body"])
    process(body["orderId"])
# ✅ Correct shape — no silent failures
get_queue_details

FIFO queue missing MessageGroupId

AI writes a standard SendMessage call without checking if the queue is FIFO. FIFO queues require MessageGroupId — omitting it throws a runtime error.

Without Infrawise
# AI writes a standard SendMessage call
sqs.send_message(
    QueueUrl=queue_url,
    MessageBody=json.dumps(order),
)
# ❌ FIFO queue — InvalidParameterValue at runtime
With Infrawise
# get_queue_details shows isFifo: true
sqs.send_message(
    QueueUrl=queue_url,
    MessageBody=json.dumps(order),
    MessageGroupId=order["customerId"],
)
# ✅ Required field included — no runtime error
get_topic_details

SNS message silently dropped

A subscription has a filter policy requiring specific message attributes. Missing one drops the message with no error, no retry, and no DLQ entry.

Without Infrawise
# AI publishes without checking filter policies
sns.publish(
    TopicArn=topic_arn,
    Message=json.dumps(payload),
)
# ❌ "eventType" required — subscription drops it silently
With Infrawise
# get_topic_details reveals requiredAttributes
sns.publish(
    TopicArn=topic_arn,
    Message=json.dumps(payload),
    MessageAttributes={
        "eventType": {"DataType": "String",
                      "StringValue": "order.created"},
    },
)
# ✅ All required attributes present — delivered

Quick Start

Up and running in 60 seconds.

Terminal
$ npm install -g infrawise

$ infrawise start --claude

✔ Scanning AWS services…
✔ Scanning databases…
✔ Scanning IaC files…
✔ Running 36 analyzers…

✔ 21 MCP tools ready
✔ .mcp.json written
✔ Open Claude Code in this directory

12 findings — 3 high, 6 medium, 3 low

How It Works

Five steps. One command.

1Scan

Reads AWS services, databases, and IaC files statically — no agents, no polling.

2Build the graph

Constructs a typed graph of every node and edge: tables, queues, lambdas, topics, buckets.

3Analyze36 rule-based analyzers

Rule-based analyzers flag missing indexes, absent DLQs, default Lambda memory, and more.

4Serve via MCP21 tools

Exposes the graph and findings as 21 MCP tools your editor can query during generation.

5AI writes correct code

Right GSI name, right event shape, right DLQ config — grounded in your actual infrastructure.

Works With Your Editor

Drop-in for every AI coding tool.

Standard MCP protocol. No plugins, no extensions, no lock-in.

Claude Code
Cursor
VS Code
Any MCP client

Claude Code reads .mcp.json automatically — just run infrawise start and open your editor.

Full setup guide →

Architecture

How Infrawise connects to your tools.

Infrawise architecture: Your Infrastructure & Code → Adapters → Graph Engine → 36 Analyzers → Cache → MCP Server → AI Coding Assistants YOUR INFRASTRUCTURE & CODE INFRAWISE SERVE AI CODING ASSISTANTS D → A L → A L2 → A S → A P → A M → A T → A C → A A → G G → AN AN → CA CA → MCP MCP → CC MCP → CU MCP → MC DYNAMODB LAMBDA · SQS · SNS API GATEWAY · RDS EVENTBRIDGE COGNITO · KINESIS MSK · ELASTICACHE SECRETS MANAGER · SSM CLOUDWATCH POSTGRESQL · MYSQL MONGODB TERRAFORM · CDK CLOUDFORMATION TYPESCRIPT / JS ADAPTERS GRAPH ENGINE 36 ANALYZERS CACHE MCP SERVER LOCALHOST:3000/MCP CLAUDE CODE CURSOR ANY MCP CLIENT

Ready to go deeper?

Full configuration reference, all CLI flags, and all 21 MCP tools documented with inputs, return shapes, and usage patterns.

View full docs →