@chinchillaenterprises/mcp-amplify
Version:
AWS Amplify MCP server with intelligent deployment automation, specialized logging suite, and recursive resource discovery
292 lines • 11.7 kB
JavaScript
export const appManagementTools = [
{
name: "amplify_list_apps",
description: "List all Amplify apps in the current AWS account/region",
inputSchema: {
type: "object",
properties: {
maxResults: {
type: "number",
description: "Maximum number of apps to return (default: 25, max: 100)"
}
}
}
},
{
name: "amplify_get_app_info",
description: "Get Amplify app details and status with enhanced branch info",
inputSchema: {
type: "object",
properties: {
appId: { type: "string", description: "Amplify application ID to get info for" }
},
required: ["appId"]
}
},
{
name: "amplify_list_branches",
description: "List all branches for a specific Amplify app",
inputSchema: {
type: "object",
properties: {
appId: { type: "string", description: "Amplify app ID" },
maxResults: {
type: "number",
description: "Maximum number of branches to return (default: 50)"
}
},
required: ["appId"]
}
},
{
name: "amplify_get_build_logs",
description: "Get build logs for a specific branch of an Amplify app",
inputSchema: {
type: "object",
properties: {
appId: { type: "string", description: "Amplify app ID" },
branchName: { type: "string", description: "Branch name (e.g., 'main', 'dev')" },
jobId: {
type: "string",
description: "Specific job ID (optional - defaults to latest build)"
},
maxLines: {
type: "number",
description: "Maximum number of log lines to return (default: 1000)"
}
},
required: ["appId", "branchName"]
}
},
{
name: "amplify_create_nextjs_app",
description: "Create a new Amplify Gen 2 Next.js application from the official AWS template",
inputSchema: {
type: "object",
properties: {
projectName: {
type: "string",
description: "Name for the new project (will be used as directory name). Use '.' to create in current directory"
},
directory: {
type: "string",
description: "Parent directory where to create the project (default: current directory)"
},
installDependencies: {
type: "boolean",
description: "Automatically install npm packages (default: false)"
},
initGit: {
type: "boolean",
description: "Initialize a new git repository (default: false)"
},
useCurrentDirectory: {
type: "boolean",
description: "Create the app in the current directory instead of creating a new one (default: false)"
}
},
required: ["projectName"]
}
},
{
name: "amplify_deploy_app",
description: "Deploy a local Amplify app to AWS by creating an Amplify app and connecting it to a GitHub repository",
inputSchema: {
type: "object",
properties: {
appName: {
type: "string",
description: "Name for the Amplify app in AWS"
},
githubOwner: {
type: "string",
description: "GitHub username or organization name"
},
githubRepo: {
type: "string",
description: "GitHub repository name (must already exist)"
},
branch: {
type: "string",
description: "Git branch to deploy (default: 'main')"
},
platform: {
type: "string",
enum: ["WEB", "WEB_COMPUTE"],
description: "Platform type - WEB for static sites, WEB_COMPUTE for SSR (default: 'WEB_COMPUTE')"
},
environmentVariables: {
type: "object",
description: "Environment variables to set for the app"
},
enableBranchAutoBuild: {
type: "boolean",
description: "Automatically build on every push (default: true)"
},
enableBranchAutoDeletion: {
type: "boolean",
description: "Automatically delete branches when deleted in Git (default: false)"
},
createComputeRole: {
type: "boolean",
description: "Automatically create and attach an IAM compute role for SSR app access to AWS Secrets Manager. Role will be scoped to secrets named '{appName}-*'. (default: true)"
}
},
required: ["appName", "githubOwner", "githubRepo"]
}
},
{
name: "amplify_check_app_exists",
description: "Check if an Amplify app already exists for a given GitHub repository",
inputSchema: {
type: "object",
properties: {
githubOwner: {
type: "string",
description: "GitHub username or organization name"
},
githubRepo: {
type: "string",
description: "GitHub repository name"
}
},
required: ["githubOwner", "githubRepo"]
}
},
{
name: "amplify_update_build_spec",
description: "Update the build specification for an existing Amplify app with Node 20+ defaults",
inputSchema: {
type: "object",
properties: {
appId: {
type: "string",
description: "Amplify app ID"
},
buildSpec: {
type: "string",
description: "Custom build specification (optional - defaults to Node 20+ template)"
}
},
required: ["appId"]
}
},
{
name: "amplify_setup_iam_role",
description: "Setup or update IAM service role for Amplify app to enable CDK operations",
inputSchema: {
type: "object",
properties: {
appId: {
type: "string",
description: "Amplify app ID"
},
roleArn: {
type: "string",
description: "IAM role ARN (optional - will auto-detect AmplifySSRLoggingRole if not provided)"
}
},
required: ["appId"]
}
},
{
name: "amplify_trigger_deployment",
description: "Manually trigger a deployment for an existing Amplify app branch",
inputSchema: {
type: "object",
properties: {
appId: {
type: "string",
description: "Amplify app ID"
},
branchName: {
type: "string",
description: "Branch name to deploy (default: 'main')"
},
jobType: {
type: "string",
enum: ["RELEASE", "RETRY", "MANUAL"],
description: "Type of deployment job (default: 'RELEASE')"
}
},
required: ["appId"]
}
},
{
name: "amplify_get_sandbox_secret_commands",
description: "Generate commands for setting Amplify sandbox secrets. Returns the exact CLI commands for the user to run manually, avoiding invisible character issues with programmatic input.",
inputSchema: {
type: "object",
properties: {
secrets: {
type: "array",
description: "Array of secret names to generate commands for",
items: {
type: "object",
properties: {
name: {
type: "string",
description: "Secret name (e.g., 'STRIPE_SECRET_KEY', 'DATABASE_URL')"
},
description: {
type: "string",
description: "Optional description of what this secret is for"
}
},
required: ["name"]
}
},
sandboxIdentifier: {
type: "string",
description: "Optional sandbox identifier (use with --identifier flag for named sandboxes)"
}
},
required: ["secrets"]
}
},
{
name: "amplify_deploy_app_cloudformation",
description: "Deploy a new Amplify app using CloudFormation infrastructure-as-code. Reads CloudFormation template and parameters from disk, deploys the stack, and returns stack outputs. Use this for production-grade deployments with full infrastructure control.",
inputSchema: {
type: "object",
properties: {
templatePath: {
type: "string",
description: "Absolute path to CloudFormation template file (YAML or JSON)"
},
parametersPath: {
type: "string",
description: "Absolute path to CloudFormation parameters file (JSON). Optional - if not provided, will use template defaults."
},
stackName: {
type: "string",
description: "Name for the CloudFormation stack. If not provided, will derive from template or use app name from package.json."
}
},
required: ["templatePath"]
}
},
{
name: "amplify_update_app_cloudformation",
description: "Update an existing Amplify app CloudFormation stack. Reads updated template and parameters from disk, creates a change set, and applies the changes. Supports zero-downtime updates and automatic rollback on failure.",
inputSchema: {
type: "object",
properties: {
stackName: {
type: "string",
description: "Name of the existing CloudFormation stack to update"
},
templatePath: {
type: "string",
description: "Absolute path to updated CloudFormation template file (YAML or JSON)"
},
parametersPath: {
type: "string",
description: "Absolute path to updated CloudFormation parameters file (JSON). Optional - if not provided, will reuse existing parameter values."
}
},
required: ["stackName", "templatePath"]
}
}
];
//# sourceMappingURL=app-management.js.map