import { z } from "zod";
/**
* Cloud services tools for AWS, Azure, GCP, and multi-cloud scenarios
*/
export const cloudInfrastructureAnalysisTool = {
name: "cloud_analyze_infrastructure",
description: "Analyze cloud infrastructure configurations (Terraform, CloudFormation, ARM templates)",
inputSchema: z.object({
configPath: z.string().describe("Path to infrastructure configuration file"),
provider: z.enum(["aws", "azure", "gcp", "multi-cloud"]).describe("Cloud provider"),
configType: z.enum(["terraform", "cloudformation", "arm-template", "pulumi", "cdk"]).describe("Infrastructure as Code tool"),
checkCosts: z.boolean().default(true).describe("Estimate infrastructure costs"),
}),
};
export const cloudSecurityAuditTool = {
name: "cloud_security_audit",
description: "Audit cloud resources for security best practices and compliance",
inputSchema: z.object({
provider: z.enum(["aws", "azure", "gcp"]).describe("Cloud provider"),
resourceType: z.enum(["all", "iam", "storage", "compute", "network", "database"]).default("all").describe("Resource type to audit"),
complianceFramework: z.enum(["cis", "pci-dss", "hipaa", "gdpr", "soc2"]).optional().describe("Compliance framework to check against"),
}),
};
export const cloudCostOptimizationTool = {
name: "cloud_cost_optimization",
description: "Analyze cloud spending and provide cost optimization recommendations",
inputSchema: z.object({
provider: z.enum(["aws", "azure", "gcp"]).describe("Cloud provider"),
analysisScope: z.enum(["compute", "storage", "network", "database", "all"]).default("all").describe("Scope of cost analysis"),
recommendationLevel: z.enum(["quick-wins", "moderate", "comprehensive"]).default("moderate").describe("Level of recommendations"),
}),
};
export const cloudMigrationPlannerTool = {
name: "cloud_migration_planner",
description: "Plan and assess cloud migration strategies",
inputSchema: z.object({
sourceEnvironment: z.enum(["on-premise", "aws", "azure", "gcp"]).describe("Source environment"),
targetProvider: z.enum(["aws", "azure", "gcp"]).describe("Target cloud provider"),
workloadType: z.enum(["web-app", "database", "microservices", "data-analytics", "legacy"]).describe("Type of workload to migrate"),
migrationStrategy: z.enum(["lift-and-shift", "refactor", "replatform", "rebuild"]).optional().describe("Preferred migration strategy"),
}),
};
export const cloudBestPracticesLookupTool = {
name: "cloud_best_practices",
description: "Look up cloud provider best practices and patterns",
inputSchema: z.object({
provider: z.enum(["aws", "azure", "gcp"]).describe("Cloud provider"),
topic: z.enum(["architecture", "security", "cost-optimization", "performance", "reliability", "operations"]).describe("Best practice topic"),
serviceType: z.string().optional().describe("Specific service (e.g., S3, Lambda, EC2, AKS, GCS)"),
}),
};
export const cloudDisasterRecoveryTool = {
name: "cloud_disaster_recovery",
description: "Design and analyze disaster recovery strategies for cloud workloads",
inputSchema: z.object({
provider: z.enum(["aws", "azure", "gcp"]).describe("Cloud provider"),
rto: z.number().optional().describe("Recovery Time Objective in hours"),
rpo: z.number().optional().describe("Recovery Point Objective in hours"),
criticalityLevel: z.enum(["critical", "high", "medium", "low"]).describe("Workload criticality"),
}),
};
// Cloud tool handlers
export async function handleCloudInfrastructureAnalysis(args: z.infer<typeof cloudInfrastructureAnalysisTool.inputSchema>) {
return {
content: [
{
type: "text" as const,
text: `Analyzing ${args.provider.toUpperCase()} infrastructure: ${args.configPath}\n\nConfiguration Type: ${args.configType}\n\nAnalysis Results:\n- Resource definitions: Validated\n- Dependencies: Mapped\n- Security: Reviewed\n- Best practices: Checked\n${args.checkCosts ? "\nCost Estimation:\n- Monthly estimated costs calculated\n- Resource optimization opportunities identified\n- Reserved instance recommendations" : ""}\n\nFindings:\n1. Resource configuration compliance\n2. Security group/firewall rules\n3. IAM permissions and roles\n4. Network topology\n5. Data storage and backup strategies\n\nRecommendations:\n- Infrastructure improvements\n- Security hardening\n- Cost optimization opportunities`,
},
],
};
}
export async function handleCloudSecurityAudit(args: z.infer<typeof cloudSecurityAuditTool.inputSchema>) {
const compliance = args.complianceFramework ? `\n\nCompliance Framework: ${args.complianceFramework.toUpperCase()}\n- Framework requirements checked\n- Compliance gaps identified\n- Remediation steps provided` : "";
return {
content: [
{
type: "text" as const,
text: `Security Audit: ${args.provider.toUpperCase()}\n\nResource Scope: ${args.resourceType}\n\nSecurity Review:\n1. IAM policies and permissions\n2. Encryption at rest and in transit\n3. Network security and isolation\n4. Logging and monitoring\n5. Secret management\n6. Access controls and authentication${compliance}\n\nFindings:\n- Security vulnerabilities identified\n- Misconfigurations detected\n- Best practice violations\n\nRecommendations:\n- Immediate security actions\n- Long-term security improvements\n- Compliance alignment steps`,
},
],
};
}
export async function handleCloudCostOptimization(args: z.infer<typeof cloudCostOptimizationTool.inputSchema>) {
return {
content: [
{
type: "text" as const,
text: `Cost Optimization Analysis: ${args.provider.toUpperCase()}\n\nAnalysis Scope: ${args.analysisScope}\nRecommendation Level: ${args.recommendationLevel}\n\nCost Optimization Opportunities:\n\n1. Right-sizing recommendations\n - Underutilized resources identified\n - Instance type optimization\n\n2. Reserved capacity planning\n - Reserved instance/commitment opportunities\n - Savings plan recommendations\n\n3. Storage optimization\n - Lifecycle policies\n - Storage class transitions\n - Unused volume cleanup\n\n4. Network optimization\n - Data transfer cost reduction\n - CDN opportunities\n\n5. Compute optimization\n - Spot/preemptible instance usage\n - Autoscaling configuration\n - Serverless migration opportunities\n\nEstimated Monthly Savings: Available based on current usage\nImplementation Priority: Ranked by impact and effort`,
},
],
};
}
export async function handleCloudMigrationPlanner(args: z.infer<typeof cloudMigrationPlannerTool.inputSchema>) {
const strategy = args.migrationStrategy || "Recommended based on workload";
return {
content: [
{
type: "text" as const,
text: `Cloud Migration Plan\n\nSource: ${args.sourceEnvironment}\nTarget: ${args.targetProvider.toUpperCase()}\nWorkload: ${args.workloadType}\nStrategy: ${strategy}\n\nMigration Assessment:\n\n1. Readiness Analysis\n - Dependencies mapped\n - Compatibility checked\n - Resource requirements estimated\n\n2. Migration Strategy\n - Phased approach recommended\n - Rollback plan included\n - Testing strategy defined\n\n3. Target Architecture\n - ${args.targetProvider.toUpperCase()} service mapping\n - Network design\n - Security configuration\n\n4. Migration Steps\n - Pre-migration preparation\n - Migration execution plan\n - Post-migration validation\n\n5. Considerations\n - Downtime requirements\n - Data synchronization\n - Cost implications\n - Training needs\n\nTimeline: Estimated based on workload complexity\nRisks: Identified with mitigation strategies`,
},
],
};
}
export async function handleCloudBestPractices(args: z.infer<typeof cloudBestPracticesLookupTool.inputSchema>) {
const service = args.serviceType ? ` - ${args.serviceType}` : "";
return {
content: [
{
type: "text" as const,
text: `${args.provider.toUpperCase()} Best Practices: ${args.topic}${service}\n\nKey Principles:\n\n1. Design for failure and resilience\n2. Implement security at every layer\n3. Optimize for cost and performance\n4. Use managed services where possible\n5. Automate operations and deployments\n\nSpecific Recommendations:\n\n- Architecture patterns for ${args.topic}\n- Service-specific guidelines\n- Monitoring and observability setup\n- Security hardening steps\n- Cost optimization tactics\n\nCommon Pitfalls:\n- Mistakes to avoid\n- Anti-patterns\n- Legacy approach transitions\n\nImplementation Guide:\n- Step-by-step recommendations\n- Example configurations\n- Reference architectures`,
},
],
};
}
export async function handleCloudDisasterRecovery(args: z.infer<typeof cloudDisasterRecoveryTool.inputSchema>) {
const rto = args.rto ? `RTO: ${args.rto} hours` : "RTO: To be determined";
const rpo = args.rpo ? `RPO: ${args.rpo} hours` : "RPO: To be determined";
return {
content: [
{
type: "text" as const,
text: `Disaster Recovery Plan: ${args.provider.toUpperCase()}\n\nCriticality: ${args.criticalityLevel}\n${rto}\n${rpo}\n\nDR Strategy:\n\n1. Backup Strategy\n - Automated backups configured\n - Retention policies defined\n - Backup testing schedule\n\n2. Replication\n - Cross-region replication\n - Data consistency guarantees\n - Failover mechanisms\n\n3. Recovery Procedures\n - Automated failover setup\n - Manual recovery steps documented\n - Testing and validation process\n\n4. Monitoring and Alerting\n - Health checks configured\n - Alert escalation paths\n - Dashboard for DR status\n\n5. ${args.provider.toUpperCase()}-Specific Services\n - Recommended DR services\n - Configuration examples\n - Cost considerations\n\nCompliance:\n- Data residency requirements\n- Regulatory compliance\n- Audit trail maintenance\n\nTesting Schedule:\n- Regular DR drills recommended\n- Documentation updates\n- Team training requirements`,
},
],
};
}