{"name":"io.github.Sidd27/infrawise","slug":"sidd27-infrawise","title":"Infrawise","description":"Live AWS, database & Kafka infrastructure context for AI coding assistants via MCP.","url":"https://mcp.market/server/sidd27-infrawise","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"data","tags":["data","devtools"],"presence":{"score":44,"stars":22,"forks":5,"downloads_week":319,"last_push_at":"2026-09-18T19:35:50.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Sidd27/infrawise","website":"https://sidd27.github.io/infrawise/","version":"0.28.2","remotes":[],"packages":[{"registryType":"npm","identifier":"infrawise","version":"0.28.2","runtimeHint":"node","transport":{"type":"stdio"}}],"tools":[{"name":"analyze_function","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_api_routes","description":"Returns all API Gateway APIs (REST, HTTP, WebSocket) with their routes, HTTP methods, paths, and the Lambda function each route invokes. Call this before writing any API handler to understand which Lambda handles a route, or when reviewing API surface area and Lambda integration coverage.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cache_overview","description":"Returns all ElastiCache clusters with engine, version, node type, node count, in-transit and at-rest encryption status, replication group, and automatic failover state. Call this before writing cache client code (TLS is required when transit encryption is on — rediss:// for Redis) or when reviewing cache availability and security posture. Cached data is never read or included. A costSignal note ap","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cloudfront_overview","description":"Returns all CloudFront distributions with, per distribution: id, comment, domain name, alias domains, enabled state, origins (type s3 or custom, domain name, and the resolved API Gateway name when the origin is an execute-api endpoint), and every cache behavior with its path pattern, target origin, cache policy name, viewer protocol policy, and allowed methods. Behaviors are listed in CloudFront m","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cognito_overview","description":"Returns all Cognito user pools with MFA configuration and every app client config: allowed auth flows, OAuth flows/scopes, callback URLs, token validity, and whether the client has a secret (SDK auth calls must send SECRET_HASH when true). Client secret values are never returned. Call this before writing any Cognito sign-in, sign-up, or token-refresh code to use the correct auth flow and client se","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_eventbridge_details","description":"Returns all EventBridge rules with name, ENABLED/DISABLED state, schedule expression (rate/cron rules), event pattern (event-driven rules), and target Lambda function names. Call this when checking what schedule or event triggers a Lambda, or when reviewing rule coverage across the account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_graph_summary","description":"Returns every node (tables, functions, lambdas, queues, etc.), every edge (query, scan, triggers, publishes_to), and all findings. Use this when you need to trace relationships across multiple services or require the complete finding set — not just high-severity ones. For a quick overview use get_infra_overview instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_infra_overview","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_lambda_overview","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_log_errors","description":"Returns recent error pattern summaries from CloudWatch log groups: pattern counts and frequencies grouped by log group. Raw log messages are never returned. Use the optional logGroup filter to scope to one group by name substring. Call this when investigating errors or identifying log groups with no retention policy.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_parameter_overview","description":"Returns all SSM Parameter Store parameters with type (String, SecureString, StringList) and tier (Standard, Advanced). Parameter values are never returned. Call this when checking which config parameters exist for a service or verifying parameter types.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_queue_details","description":"Returns all SQS queues with DLQ presence, encryption status, FIFO type (isFifo), visibility timeout, approximate message count, and retention days. When isFifo is true, all SendMessage calls must include a MessageGroupId. Call this when reviewing messaging architecture, investigating a message backlog, checking DLQ coverage, or verifying visibility timeout is set correctly relative to Lambda timeo","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_s3_overview","description":"Returns all S3 buckets with versioning status, encryption, public access configuration, and security findings. Call this when checking which S3 buckets exist, reviewing bucket security posture, or before writing S3 upload/delete handlers to confirm the bucket name. Do NOT call when you only need a quick infrastructure count — use get_infra_overview for that. Object contents are never included.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_secrets_overview","description":"Returns all Secrets Manager secrets with rotation status, rotation interval, and referencedKeys — key names (e.g. \"password\", \"apiKey\") inferred from application code that parses the secret, never the values. Call this when checking which secrets exist, confirming rotation is enabled before a security review, or before writing code that reads a secret so you use the correct key name instead of gue","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_stack_outputs","description":"Returns all stack outputs and cross-stack exports parsed from local IaC files: Terraform output blocks and CloudFormation/CDK Outputs sections, with name, description, export name, and the raw value expression. Call this when wiring cross-stack references (Fn::ImportValue, terraform_remote_state) or when you need the exported name of a resource defined in another stack. Do NOT call for live resour","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_stream_details","description":"Returns all Kinesis data streams (status, shard count, retention hours, encryption, capacity mode) and Amazon MSK clusters (state, cluster type, Kafka version, broker count). Call this when writing Kinesis producer or consumer code, checking whether a stream is PROVISIONED or ON_DEMAND before writing PutRecord calls, or reviewing streaming architecture. For Kafka topic-level producer/consumer mapp","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_table_schema","description":"Returns the full schema for specific tables or collections by name: columns with data types and nullability, primary keys, foreign keys (join paths), indexes, DynamoDB partition/sort keys and billing mode, and MongoDB estimated document counts. Accepts short names (\"orders\" matches \"public.orders\") and is case-insensitive. Call this after get_infra_overview when you need column-level detail to wri","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_topic_details","description":"Returns all SNS topics with subscription count, encryption status, and filter policies. Filter policies list the message attributes each subscription requires — publishers must include these attributes or messages are silently dropped. Call this before writing any SNS publish code or when reviewing event fan-out patterns.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mysql_index_suggestions","description":"Generates the exact ALTER TABLE ADD INDEX SQL for a MySQL table column, including a composite variant and EXPLAIN guidance to verify the index is used. Call this when the analyzer flags a missing MySQL index or full table scan finding. Does not verify whether the index already exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"postgres_index_suggestions","description":"Generates the exact CREATE INDEX CONCURRENTLY SQL for a PostgreSQL table column, including a partial index variant and a post-creation ANALYZE reminder. Call this when the analyzer flags a missing index finding or when writing a query that filters on a column without an existing index. Does not verify whether the index already exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_gsi","description":"Generates a ready-to-use DynamoDB GSI definition — index name, partition key, projection type, billing mode — for a given table and attribute. Call this when a query pattern needs an index that does not exist yet, or when the analyzer flags a missing GSI finding. Checks the table's existing indexes first: when one is already keyed on that attribute it returns `alreadyIndexed: true` with the existi","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_mongo_index","description":"Generates the exact db.collection.createIndex() command for a MongoDB field, plus compound and text index variants and an explain query to verify. Call this when a collection scan is flagged by the analyzer or when writing a query that filters on an unindexed field. Does not check whether the index already exists.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-19T20:02:49.812Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:02:49.771Z","components":{"code":{"score":25,"max":25,"notes":["44 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"infrawise","version":"0.28.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":34,"publishedAt":"2026-09-14T13:02:42.023Z","repositoryUrl":"git+https://github.com/Sidd27/infrawise.git","weeklyDownloads":319}],"repo":{"found":true,"owner":"Sidd27","repo":"infrawise","archived":false,"pushedAt":"2026-09-18T19:35:50Z","stars":22,"forks":5,"openIssues":7,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/17669399?v=4","ownerCreatedAt":"2016-03-05T09:09:19Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/17669399?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":22,"forks":5,"downloadsWeek":319,"license":"MIT","lastPushAt":"2026-09-18T19:35:50.000Z","score":44}}}},"grade_history":[],"reviews":[]}