AWS Data Processing MCP Server
Data processing and transformation services.
MCP Info
| Attribute | Details |
|---|---|
| Docker Image | mcp/aws-dataprocessing-mcp-server |
| Author | awslabs |
| Repository | https://github.com/awslabs/mcp |
Image Building Info
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/awslabs/mcp/blob/76ec6993aec4c6281e5250cbeba8db6a5863f2ff/src/aws-dataprocessing-mcp-server/Dockerfile |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | Docker Scout Health Score |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/aws-dataprocessing-mcp-server --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | Apache License 2.0 |
Available Tools (32)
| Tools provided by this Server | Short Description |
|---|---|
add_inline_policy |
Add a new inline policy to an IAM role. |
analyze_s3_usage_for_data_processing |
Analyze S3 bucket usage patterns for data processing services (Glue, EMR, Athena). |
create_data_processing_role |
Create a new IAM role for data processing services. |
get_policies_for_role |
Get all policies attached to an IAM role. |
get_roles_for_service |
Get all IAM roles that can be assumed by a specific AWS service. |
list_s3_buckets |
List S3 buckets that have 'glue' in their name and are in the specified region. |
manage_aws_athena_data_catalogs |
Manage AWS Athena data catalogs with both read and write operations. |
manage_aws_athena_databases_and_tables |
Manage AWS Athena databases and tables with read operations. |
manage_aws_athena_named_queries |
Manage saved SQL queries in AWS Athena. |
manage_aws_athena_query_executions |
Execute and manage AWS Athena SQL queries. |
manage_aws_athena_workgroups |
Manage AWS Athena workgroups with both read and write operations. |
manage_aws_emr_clusters |
Manage AWS EMR EC2 clusters with comprehensive control over cluster lifecycle. |
manage_aws_emr_ec2_instances |
Manage AWS EMR EC2 instances with both read and write operations. |
manage_aws_emr_ec2_steps |
Manage AWS EMR EC2 steps for processing data on EMR clusters. |
manage_aws_glue_catalog |
Manage AWS Glue Data Catalog with both read and write operations. |
manage_aws_glue_classifiers |
Manage AWS Glue classifiers to determine data formats and schemas. |
manage_aws_glue_connections |
Manage AWS Glue Data Catalog connections with both read and write operations. |
manage_aws_glue_crawler_management |
Manage AWS Glue crawler schedules and monitor performance metrics. |
manage_aws_glue_crawlers |
Manage AWS Glue crawlers to discover and catalog data sources. |
manage_aws_glue_databases |
Manage AWS Glue Data Catalog databases with both read and write operations. |
manage_aws_glue_encryption |
Manage AWS Glue Data Catalog Encryption Settings for data protection. |
manage_aws_glue_jobs |
Manage AWS Glue ETL jobs and job runs with both read and write operations. |
manage_aws_glue_partitions |
Manage AWS Glue Data Catalog partitions with both read and write operations. |
manage_aws_glue_resource_policies |
Manage AWS Glue Resource Policies for access control. |
manage_aws_glue_security_configurations |
Manage AWS Glue Security Configurations for data encryption. |
manage_aws_glue_sessions |
Manage AWS Glue Interactive Sessions for running Spark and Ray workloads. |
manage_aws_glue_statements |
Manage AWS Glue Interactive Session Statements for executing code and retrieving results. |
manage_aws_glue_tables |
Manage AWS Glue Data Catalog tables with both read and write operations. |
manage_aws_glue_triggers |
Manage AWS Glue triggers to automate workflow and job execution. |
manage_aws_glue_usage_profiles |
Manage AWS Glue Usage Profiles for resource allocation and cost management. |
manage_aws_glue_workflows |
Manage AWS Glue workflows to orchestrate complex ETL activities. |
upload_to_s3 |
Upload Python code content directly to an S3 bucket using putObject. |
Tools Details
Tool: add_inline_policy
Add a new inline policy to an IAM role.
This tool creates a new inline policy with the specified permissions and adds it to an IAM role. Inline policies are embedded within the role and cannot be attached to multiple roles. Commonly used for granting data processing services access to AWS resources, enabling Glue jobs to access data sources, and configuring permissions for CloudWatch logging and S3 access.
Requirements
- The server must be run with the
--allow-writeflag - The role must exist in your AWS account
- The policy name must be unique within the role
- You cannot modify existing policies with this tool
Permission Format
The permissions parameter can be either a single policy statement or a list of statements.
Single Statement Example
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::example-bucket/*"
}
Common Data Processing Permission Examples
Glue Job Permissions
{
"Effect": "Allow",
"Action": [
"glue:*",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket",
"iam:PassRole"
],
"Resource": "*"
}
EMR Cluster Permissions
{
"Effect": "Allow",
"Action": [
"elasticmapreduce:*",
"ec2:DescribeInstances",
"ec2:DescribeSecurityGroups",
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "*"
}
Athena Query Permissions
{
"Effect": "Allow",
"Action": [
"athena:*",
"glue:GetDatabase",
"glue:GetTable",
"glue:GetPartition",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Resource": "*"
}
Usage Tips
- Follow the principle of least privilege by granting only necessary permissions
- Use specific resources rather than "*" whenever possible
- Consider using conditions to further restrict permissions
- Group related permissions into logical policies with descriptive names
| Parameters | Type | Description |
|---|---|---|
permissions |
string |
Permissions to include in the policy as IAM policy statements in JSON format. |
Can be either a single statement object or an array of statement objects.
policy_name|string|Name of the inline policy to create. Must be unique within the role.
role_name|string|Name of the IAM role to add the policy to. The role must exist.
Tool: analyze_s3_usage_for_data_processing
Analyze S3 bucket usage patterns for data processing services (Glue, EMR, Athena).
This tool helps identify which buckets are actively used by data processing services and which ones might be idle or underutilized.
| Parameters | Type | Description |
|---|---|---|
bucket_name |
string optional |
Optional specific bucket to analyze (None for all buckets) |
Tool: create_data_processing_role
Create a new IAM role for data processing services.
This tool creates a new IAM role with the appropriate trust relationship for the specified data processing service (Glue, EMR, or Athena). It can also attach managed policies and add an inline policy to the role.
Requirements
- The server must be run with the
--allow-writeflag - The role name must be unique within your AWS account
- Valid AWS credentials with permissions to create IAM roles
Service Types
- glue: Creates a role that can be assumed by the Glue service
- emr: Creates a role that can be assumed by the EMR service
- athena: Creates a role that can be assumed by the Athena service
Common Managed Policies. add these policies
- Glue: 'arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole'
- EMR: 'arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceRole'
- Athena: 'arn:aws:iam::aws:policy/service-role/AmazonAthenaFullAccess'
Usage Tips
- Always provide a descriptive name and description for the role
- Attach only the necessary managed policies to follow least privilege
- Use inline policies for custom permissions specific to your use case
- Consider adding S3 access permissions for data sources and targets
| Parameters | Type | Description |
|---|---|---|
role_name |
string |
Name of the IAM role to create. Must be unique within your AWS account. |
service_type |
string |
Type of data processing service: 'glue', 'emr', or 'athena'. |
description |
string optional |
Optional description for the IAM role. |
inline_policy |
string optional |
Optional inline policy to add to the role. |
managed_policy_arns |
string optional |
Optional list of managed policy ARNs to attach to the role. |
Tool: get_policies_for_role
Get all policies attached to an IAM role.
This tool retrieves all policies associated with an IAM role, providing a comprehensive view of the role's permissions and trust relationships. It helps you understand the current permissions, identify missing or excessive permissions, troubleshoot data processing issues, and verify trust relationships for service roles.
Requirements
- The role must exist in your AWS account
- Valid AWS credentials with permissions to read IAM role information
Response Information
The response includes role ARN, assume role policy document (trust relationships), role description, managed policies with their documents, and inline policies with their documents.
Usage Tips
- Use this tool before adding new permissions to understand existing access
- Check the assume role policy to verify which services or roles can assume this role
- Look for overly permissive policies that might pose security risks
- Use with add_inline_policy to implement least-privilege permissions
- For Glue jobs, ensure the role has access to required data sources and targets
- For EMR clusters, verify EC2 instance profile permissions
- For Athena queries, check S3 bucket access permissions
| Parameters | Type | Description |
|---|---|---|
role_name |
string |
Name of the IAM role to get policies for. The role must exist in your AWS account. |
Tool: get_roles_for_service
Get all IAM roles that can be assumed by a specific AWS service.
This tool retrieves all IAM roles in your AWS account that have a trust relationship with the specified service. It helps you identify which roles can be used for services like Glue jobs, EMR clusters, or Athena queries, making it easier to select the appropriate role when creating these resources.
Service Types
Common service types include:
- glue: AWS Glue service (glue.amazonaws.com)
- emr: Amazon EMR service (elasticmapreduce.amazonaws.com)
- athena: Amazon Athena service (athena.amazonaws.com)
- You can also specify other AWS service principals
Response Information
The response includes a list of roles that can be assumed by the specified service, with details such as role name, ARN, description, creation date, and the full assume role policy document.
Usage Tips
- Use this tool to find existing roles before creating new ones
- Verify that roles have the necessary permissions for your use case
- For Glue jobs, look for roles with AWSGlueServiceRole or similar policies
- For EMR clusters, look for roles with AmazonElasticMapReduceRole or similar policies
- For Athena queries, look for roles with AmazonAthenaFullAccess or similar policies
| Parameters | Type | Description |
|---|---|---|
service_type |
string |
Type of data processing service: 'glue', 'emr', 'athena', or other AWS service name. |
Tool: list_s3_buckets
List S3 buckets that have 'glue' in their name and are in the specified region.
This tool helps identify S3 buckets commonly used for data processing workflows, particularly those related to AWS Glue operations. It provides usage statistics and idle time information to help with resource management.
Requirements
- Valid AWS credentials with permissions to list S3 buckets
- S3:ListAllMyBuckets permission
Response Information
The response includes bucket name, creation date, region, object count, last modified date, and idle time analysis.
Usage Tips
- Use this tool to find existing data processing buckets before creating new ones
- Monitor idle buckets that haven't been accessed for 90+ days
- Verify bucket regions match your data processing service regions
- Check object counts to understand bucket usage patterns
| Parameters | Type | Description |
|---|---|---|
region |
string optional |
AWS region to filter buckets by (defaults to AWS_REGION environment variable) |
Tool: manage_aws_athena_data_catalogs
Manage AWS Athena data catalogs with both read and write operations.
This tool provides operations for managing Athena data catalogs, including creating, retrieving, listing, updating, and deleting data catalogs. Data catalogs are used to organize and access data sources in Athena, enabling you to query data across various sources like AWS Glue Data Catalog, Apache Hive metastores, or federated sources.
Requirements
- The server must be run with the
--allow-writeflag for create-data-catalog, delete-data-catalog, and update-data-catalog operations - Appropriate AWS permissions for Athena data catalog operations
Operations
- create-data-catalog: Create a new data catalog
- delete-data-catalog: Delete an existing data catalog
- get-data-catalog: Get information about a single data catalog
- list-data-catalogs: List all data catalogs
- update-data-catalog: Update an existing data catalog
Usage Tips
- Use list-data-catalogs to find available data catalogs
- Data catalogs can be of type LAMBDA, GLUE, HIVE, or FEDERATED
- Parameters are specific to the type of data catalog
Example
# List all data catalogs
{'operation': 'list-data-catalogs', 'max_results': 10}
# Create a Glue data catalog
{
'operation': 'create-data-catalog',
'name': 'my-glue-catalog',
'type': 'GLUE',
'description': 'My Glue Data Catalog',
'parameters': {'catalog-id': '123456789012'},
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-data-catalog, delete-data-catalog, get-data-catalog, list-data-catalogs, update-data-catalog. Choose read-only operations when write access is disabled. |
delete_catalog_only |
string optional |
For delete-data-catalog operation, whether to delete only the Athena Data Catalog (true) or also its resources (false). Only applicable for FEDERATED catalogs. |
description |
string optional |
Description of the data catalog (optional for create-data-catalog and update-data-catalog). |
max_results |
string optional |
Maximum number of results to return for list-data-catalogs operation (range: 2-50). |
name |
string optional |
Name of the data catalog (required for create-data-catalog, delete-data-catalog, get-data-catalog, update-data-catalog). The catalog name must be unique for the AWS account and can use a maximum of 127 alphanumeric, underscore, at sign, or hyphen characters. |
next_token |
string optional |
Pagination token for list-data-catalogs operation. |
parameters |
string optional |
Parameters for the data catalog (optional for create-data-catalog and update-data-catalog). Format depends on catalog type (e.g., for LAMBDA: 'metadata-function=lambda_arn,record-function=lambda_arn' or 'function=lambda_arn'). |
tags |
string optional |
Tags for the data catalog (optional for create-data-catalog). |
type |
string optional |
Type of the data catalog (required for create-data-catalog and update-data-catalog). Valid values: LAMBDA, GLUE, HIVE, FEDERATED. |
work_group |
string optional |
The name of the workgroup (required if making an IAM Identity Center request). |
Tool: manage_aws_athena_databases_and_tables
Manage AWS Athena databases and tables with read operations.
This tool provides operations for retrieving information about databases and tables in Athena data catalogs. These are read-only operations that do not modify any resources.
Requirements
- Appropriate AWS permissions for Athena database and table operations
Operations
- get-database: Get information about a single database
- get-table-metadata: Get metadata for a specific table
- list-databases: List all databases in a data catalog
- list-table-metadata: List metadata for all tables in a database
Usage Tips
- Use list-databases to find available databases in a data catalog
- Use list-table-metadata to find available tables in a database
- The expression parameter for list-table-metadata supports filtering tables by name pattern
Example
# List all databases in a catalog
{'operation': 'list-databases', 'catalog_name': 'AwsDataCatalog', 'max_results': 10}
# Get metadata for a specific table
{
'operation': 'get-table-metadata',
'catalog_name': 'AwsDataCatalog',
'database_name': 'my_database',
'table_name': 'my_table',
}
| Parameters | Type | Description |
|---|---|---|
catalog_name |
string |
Name of the data catalog. |
operation |
string |
Operation to perform: get-database, get-table-metadata, list-databases, list-table-metadata. These are read-only operations. |
database_name |
string optional |
Name of the database (required for get-database, get-table-metadata, list-table-metadata). |
expression |
string optional |
Expression to filter tables (optional for list-table-metadata). A regex pattern that pattern-matches table names. |
max_results |
string optional |
Maximum number of results to return for list-databases (range: 1-50) and list-table-metadata (range: 1-50) operations. |
next_token |
string optional |
Pagination token for list-databases and list-table-metadata operations. |
table_name |
string optional |
Name of the table (required for get-table-metadata). |
work_group |
string optional |
The name of the workgroup (required if making an IAM Identity Center request). |
Tool: manage_aws_athena_named_queries
Manage saved SQL queries in AWS Athena.
This tool provides operations for creating, retrieving, updating, and deleting named queries in AWS Athena. Named queries are saved SQL statements that can be easily reused, shared with team members, and executed without having to rewrite complex queries.
Requirements
- The server must be run with the
--allow-writeflag for create-named-query, delete-named-query, and update-named-query operations - Appropriate AWS permissions for Athena named query operations
Operations
- batch-get-named-query: Get details for up to 50 named queries by their IDs
- create-named-query: Save a new SQL query with a name and description
- delete-named-query: Remove a saved query
- get-named-query: Retrieve a single named query by ID
- list-named-queries: List available named query IDs
- update-named-query: Modify an existing named query
Example
# Create a named query
create_response = await manage_aws_athena_named_queries(
operation='create-named-query',
name='Daily Active Users',
description='Query to calculate daily active users',
database='analytics',
query_string='SELECT date, COUNT(DISTINCT user_id) AS active_users FROM user_events GROUP BY date ORDER BY date DESC',
work_group='primary',
)
# Later, retrieve the named query
query = await manage_aws_athena_named_queries(
operation='get-named-query', named_query_id=create_response.named_query_id
)
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: batch-get-named-query, create-named-query, delete-named-query, get-named-query, list-named-queries, update-named-query. Choose read-only operations when write access is disabled. |
client_request_token |
string optional |
A unique case-sensitive string used to ensure the request to create the query is idempotent (optional for create-named-query). |
database |
string optional |
Database context for the named query (required for create-named-query, optional for update-named-query). |
description |
string optional |
Description of the named query (optional for create-named-query and update-named-query, max 1024 chars). |
max_results |
string optional |
Maximum number of results to return for list-named-queries operation. |
name |
string optional |
Name of the named query (required for create-named-query and update-named-query). |
named_query_id |
string optional |
ID of the named query (required for get-named-query, delete-named-query, update-named-query). |
named_query_ids |
string optional |
List of named query IDs (required for batch-get-named-query, max 50 IDs). |
next_token |
string optional |
Pagination token for list-named-queries operation. |
query_string |
string optional |
The SQL query string (required for create-named-query and update-named-query). |
work_group |
string optional |
The name of the workgroup (optional for create-named-query and list-named-queries). |
Tool: manage_aws_athena_query_executions
Execute and manage AWS Athena SQL queries.
This tool provides comprehensive operations for AWS Athena query management, including starting new queries, monitoring execution status, retrieving results, and analyzing performance statistics.
Requirements
- The server must be run with the
--allow-writeflag if start-query-execution contains any write operation for example DDL commands, Insert, Update, Delete Commands or any flag updates - Appropriate AWS permissions for Athena query operations
Operations
- batch-get-query-execution: Get details for up to 50 query executions by their IDs
- get-query-execution: Get complete information about a single query execution
- get-query-results: Retrieve the results of a completed query
- get-query-runtime-statistics: Get performance statistics for a query execution
- list-query-executions: List available query execution IDs (up to 50)
- start-query-execution: Execute a new SQL query
- stop-query-execution: Cancel a running query
Example
# Start a new query
response = await manage_aws_athena_queries(
operation='start-query-execution',
query_string='SELECT * FROM my_database.my_table LIMIT 10',
query_execution_context={'Database': 'my_database', 'Catalog': 'my_catalog'},
work_group='primary',
)
# Get the query results
results = await manage_aws_athena_queries(
operation='get-query-results', query_execution_id=response.query_execution_id
)
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: batch-get-query-execution, get-query-execution, get-query-results, get-query-runtime-statistics, list-query-executions, start-query-execution, stop-query-execution. Choose read-only operations when write access is disabled. |
client_request_token |
string optional |
A unique case-sensitive string used to ensure the request to create the query is idempotent (optional for start-query-execution). |
execution_parameters |
string optional |
Execution parameters for parameterized queries (optional for start-query-execution). |
max_results |
string optional |
Maximum number of results to return (1-1000 for get-query-results, 0-50 for list-query-executions). |
next_token |
string optional |
Pagination token for get-query-results and list-query-executions operations. |
query_execution_context |
string optional |
Context for the query execution, such as database name and catalog (optional for start-query-execution). |
query_execution_id |
string optional |
ID of the query execution (required for get-query-execution, get-query-results, get-query-runtime-statistics, stop-query-execution). |
query_execution_ids |
string optional |
List of query execution IDs (required for batch-get-query-execution, max 50 IDs). |
query_result_type |
string optional |
Type of query results to return: DATA_ROWS (default) or DATA_MANIFEST (optional for get-query-results). |
query_string |
string optional |
The SQL query string to execute (required for start-query-execution). |
result_configuration |
string optional |
Configuration for query results, such as output location and encryption (optional for start-query-execution). |
result_reuse_configuration |
string optional |
Specifies the query result reuse behavior for the query (optional for start-query-execution). |
work_group |
string optional |
The name of the workgroup in which the query is being started (optional for start-query-execution, list-query-executions). |
Tool: manage_aws_athena_workgroups
Manage AWS Athena workgroups with both read and write operations.
This tool provides operations for managing Athena workgroups, including creating, retrieving, listing, updating, and deleting workgroups. Workgroups allow you to isolate queries for different user groups and control query execution settings.
Requirements
- The server must be run with the
--allow-writeflag for create-work-group, delete-work-group, and update-work-group operations - Appropriate AWS permissions for Athena workgroup operations
Operations
- create-work-group: Create a new workgroup
- delete-work-group: Delete an existing workgroup
- get-work-group: Get information about a single workgroup
- list-work-groups: List all workgroups
- update-work-group: Update an existing workgroup
Usage Tips
- Use workgroups to isolate different user groups and control costs
- Configure workgroup settings to enforce query limits and output locations
- Use tags to organize and track workgroups
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-work-group, delete-work-group, get-work-group, list-work-groups, update-work-group. Choose read-only operations when write access is disabled. |
configuration |
string optional |
Configuration for the workgroup, including result configuration, enforcement options, etc. (optional for create-work-group and update-work-group). |
description |
string optional |
Description of the workgroup (optional for create-work-group and update-work-group). |
max_results |
string optional |
Maximum number of results to return for list-work-groups operation. |
name |
string optional |
Name of the workgroup (required for create-work-group, delete-work-group, get-work-group, update-work-group). |
next_token |
string optional |
Pagination token for list-work-groups operation. |
recursive_delete_option |
string optional |
Whether to recursively delete the workgroup and its contents (optional for delete-work-group). |
state |
string optional |
State of the workgroup: ENABLED or DISABLED (optional for create-work-group and update-work-group). |
tags |
string optional |
Tags for the workgroup (optional for create-work-group). Example {'ResourceType': 'Workgroup'} |
Tool: manage_aws_emr_clusters
Manage AWS EMR EC2 clusters with comprehensive control over cluster lifecycle.
This tool provides operations for managing Amazon EMR clusters running on EC2 instances, including creating, configuring, monitoring, modifying, and terminating clusters. It also supports security configuration management for EMR clusters.
Requirements
- The server must be run with the
--allow-writeflag for create-cluster, modify-cluster, modify-cluster-attributes, terminate-clusters, create-security-configuration, and delete-security-configuration operations - Appropriate AWS permissions for EMR cluster operations
Operations
- create-cluster: Create a new EMR cluster with specified configurations
- describe-cluster: Get detailed information about a specific EMR cluster
- modify-cluster: Modify the step concurrency level of a running cluster
- modify-cluster-attributes: Modify auto-termination and termination protection settings
- terminate-clusters: Terminate one or more EMR clusters
- list-clusters: List all EMR clusters with optional filtering
- create-security-configuration: Create a new EMR security configuration
- delete-security-configuration: Delete an existing EMR security configuration
- describe-security-configuration: Get details about a specific security configuration
- list-security-configurations: List all available security configurations
Example
# Create a basic EMR cluster with Spark
{
'operation': 'create-cluster',
'name': 'SparkCluster',
'release_label': 'emr-7.9.0',
'applications': [{'Name': 'Spark'}],
'instances': {
'InstanceGroups': [
{
'Name': 'Master',
'InstanceRole': 'MASTER',
'InstanceType': 'm5.xlarge',
'InstanceCount': 1,
},
{
'Name': 'Core',
'InstanceRole': 'CORE',
'InstanceType': 'm5.xlarge',
'InstanceCount': 2,
},
],
'Ec2KeyName': 'my-key-pair',
'KeepJobFlowAliveWhenNoSteps': true,
},
}
Usage Tips
- Use list-clusters to find cluster IDs before performing operations on specific clusters
- Check cluster state before performing operations that require specific states
- For large result sets, use pagination with marker parameter
- When creating clusters, consider using security configurations for encryption and authentication
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-cluster, describe-cluster, modify-cluster, modify-cluster-attributes, terminate-clusters, list-clusters, create-security-configuration, delete-security-configuration, describe-security-configuration, list-security-configurations. Choose read-only operations when write access is disabled. |
applications |
string optional |
The applications to be installed on the cluster (optional for create-cluster). Example: [{"Name": "Hadoop"}, {"Name": "Spark"}] |
auto_scaling_role |
string optional |
An IAM role for automatic scaling policies (optional for create-cluster). Default role is EMR_AutoScaling_DefaultRole. |
auto_terminate |
string optional |
Whether the cluster should auto-terminate after completing steps (optional for modify-cluster-attributes). |
bootstrap_actions |
string optional |
A list of bootstrap actions to run on the cluster (optional for create-cluster). Each action contains Name, ScriptBootstrapAction properties. |
cluster_id |
string optional |
ID of the EMR cluster (required for describe-cluster, modify-cluster, modify-cluster-attributes). |
cluster_ids |
string optional |
List of EMR cluster IDs (required for terminate-clusters). |
cluster_states |
string optional |
The cluster state filters to apply when listing clusters (optional for list-clusters). |
configurations |
string optional |
A list of configurations to apply to the cluster (optional for create-cluster). Applies only to EMR releases 4.x and later. |
created_after |
string optional |
The creation date and time beginning value filter for listing clusters (optional for list-clusters). |
created_before |
string optional |
The creation date and time end value filter for listing clusters (optional for list-clusters). |
custom_ami_id |
string optional |
A custom Amazon Linux AMI for the cluster (optional for create-cluster). Available only in EMR releases 5.7.0 and later. |
ebs_root_volume_iops |
string optional |
The IOPS of the EBS root device volume of the Linux AMI (optional for create-cluster). Available in EMR releases 6.15.0 and later. |
ebs_root_volume_size |
string optional |
The size, in GiB, of the EBS root device volume of the Linux AMI (optional for create-cluster). Available in EMR releases 4.x and later. |
ebs_root_volume_throughput |
string optional |
The throughput, in MiB/s, of the EBS root device volume of the Linux AMI (optional for create-cluster). Available in EMR releases 6.15.0 and later. |
instances |
string optional |
A specification of the number and type of Amazon EC2 instances (required for create-cluster). Must include instance groups or instance fleets configuration. |
job_flow_role |
string optional |
The IAM role for EC2 instances running the job flow (required for create-cluster when using temporary credentials). |
kerberos_attributes |
string optional |
Attributes for Kerberos configuration when Kerberos authentication is enabled (optional for create-cluster). |
log_encryption_kms_key_id |
string optional |
The KMS key used for encrypting log files. Available with EMR 5.30.0 and later, excluding EMR 6.0.0 (optional for create-cluster). |
log_uri |
string optional |
The path to the Amazon S3 location where logs for the cluster are stored (optional for create-cluster). |
marker |
string optional |
The pagination token for list-clusters operation. |
name |
string optional |
Name of the EMR cluster (required for create-cluster). Cannot contain <, >, $, |
os_release_label |
string optional |
The Amazon Linux release for the cluster (optional for create-cluster). |
placement_groups |
string optional |
Placement group configuration for the cluster (optional for create-cluster). |
release_label |
string optional |
The Amazon EMR release label, which determines the version of open-source application packages installed on the cluster (required for create-cluster). Format: emr-x.x.x |
repo_upgrade_on_boot |
string optional |
Applies only when CustomAmiID is used. Specifies the type of updates that are applied from the Amazon Linux AMI package repositories when an instance boots (optional for create-cluster). |
scale_down_behavior |
string optional |
The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs (optional for create-cluster). Values: TERMINATE_AT_INSTANCE_HOUR, TERMINATE_AT_TASK_COMPLETION. |
security_configuration |
string optional |
The name of a security configuration to apply to the cluster (optional for create-cluster). |
security_configuration_json |
string optional |
JSON format security configuration (required for create-security-configuration). |
security_configuration_name |
string optional |
Name of the security configuration (required for create-security-configuration, delete-security-configuration, describe-security-configuration). |
service_role |
string optional |
The IAM role that Amazon EMR assumes to access AWS resources on your behalf (optional for create-cluster). |
step_concurrency_level |
string optional |
The number of steps that can be executed concurrently (required for modify-cluster). Range: 1-256. |
steps |
string optional |
A list of steps to run on the cluster (optional for create-cluster). Each step contains Name, ActionOnFailure, and HadoopJarStep properties. |
termination_protected |
string optional |
Whether the cluster is protected from termination (optional for modify-cluster-attributes). |
unhealthy_node_replacement |
string optional |
Whether Amazon EMR should gracefully replace Amazon EC2 core instances that have degraded within the cluster (optional for create-cluster). |
visible_to_all_users |
string optional |
Whether the cluster is visible to all IAM users of the AWS account (optional for create-cluster, default: true). |
Tool: manage_aws_emr_ec2_instances
Manage AWS EMR EC2 instances with both read and write operations.
This tool provides comprehensive operations for managing Amazon EMR EC2 instances, including adding and modifying instance fleets and groups, as well as listing instance details. It enables scaling cluster capacity, configuring instance specifications, and monitoring instance status.
Requirements
- The server must be run with the
--allow-writeflag for add-instance-fleet, add-instance-groups, modify-instance-fleet, and modify-instance-groups operations - Appropriate AWS permissions for EMR instance operations
Operations
-
add-instance-fleet: Add an instance fleet to an existing EMR cluster
- Required: cluster_id, instance_fleet (with InstanceFleetType)
- Returns: cluster_id, instance_fleet_id, cluster_arn
-
add-instance-groups: Add instance groups to an existing EMR cluster
- Required: cluster_id, instance_groups (each with InstanceRole, InstanceType, InstanceCount)
- Returns: cluster_id (as job_flow_id), instance_group_ids, cluster_arn
-
modify-instance-fleet: Modify an instance fleet in an EMR cluster
- Required: cluster_id, instance_fleet_id, instance_fleet_config
- Returns: confirmation of modification
-
modify-instance-groups: Modify instance groups in an EMR cluster
- Required: instance_group_configs (each with InstanceGroupId)
- Optional: cluster_id
- Returns: confirmation of modification
-
list-instance-fleets: List all instance fleets in an EMR cluster
- Required: cluster_id
- Optional: marker
- Returns: instance_fleets, marker for pagination
-
list-instances: List all instances in an EMR cluster
- Required: cluster_id
- Optional: instance_group_id, instance_group_types, instance_fleet_id, instance_fleet_type, instance_states, marker
- Returns: instances, marker for pagination
-
list-supported-instance-types: List all supported instance types for EMR
- Required: release_label
- Optional: marker
- Returns: instance_types, marker for pagination
Example
# Add a task instance fleet with mixed instance types
response = await manage_aws_emr_ec2_instances(
operation='add-instance-fleet',
cluster_id='j-123ABC456DEF',
instance_fleet={
'InstanceFleetType': 'TASK',
'Name': 'TaskFleet',
'TargetOnDemandCapacity': 2,
'TargetSpotCapacity': 3,
'InstanceTypeConfigs': [
{
'InstanceType': 'm5.xlarge',
'WeightedCapacity': 1,
'BidPriceAsPercentageOfOnDemandPrice': 80,
},
{
'InstanceType': 'm5.2xlarge',
'WeightedCapacity': 2,
'BidPriceAsPercentageOfOnDemandPrice': 75,
},
],
},
)
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: add-instance-fleet, add-instance-groups, modify-instance-fleet, modify-instance-groups, list-instance-fleets, list-instances, list-supported-instance-types. Choose read-only operations when write access is disabled. |
cluster_id |
string optional |
ID of the EMR cluster (required for all operations except list-supported-instance-types). |
instance_fleet |
string optional |
Instance fleet configuration (required for add-instance-fleet). Must include InstanceFleetType and can include Name, TargetOnDemandCapacity, TargetSpotCapacity, InstanceTypeConfigs, LaunchSpecifications, and ResizeSpecifications. |
instance_fleet_config |
string optional |
Instance fleet configuration for modification (required for modify-instance-fleet). Can include TargetOnDemandCapacity, TargetSpotCapacity, ResizeSpecifications, InstanceTypeConfigs, and Context. |
instance_fleet_id |
string optional |
ID of the instance fleet (required for modify-instance-fleet). |
instance_fleet_type |
string optional |
Instance fleet type to filter by (optional for list-instances). Valid values: MASTER, CORE, TASK. |
instance_group_configs |
string optional |
List of instance group configurations for modification (required for modify-instance-groups). Each must include InstanceGroupId and can include InstanceCount, EC2InstanceIdsToTerminate, ShrinkPolicy, ReconfigurationType, and Configurations. |
instance_group_ids |
string optional |
List of instance group IDs (optional for list-instances). |
instance_group_types |
string optional |
List of instance group types to filter by (optional for list-instances). Valid values: MASTER, CORE, TASK. |
instance_groups |
string optional |
List of instance group configurations (required for add-instance-groups). Each must include InstanceRole, InstanceType, InstanceCount, and can include Name, Market, BidPrice, Configurations, EbsConfiguration, AutoScalingPolicy, and CustomAmiId. |
instance_states |
string optional |
List of instance states to filter by (optional for list-instances). Valid values: AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING, TERMINATED. |
marker |
string optional |
Pagination token for list operations. |
release_label |
string optional |
EMR release label (required for list-supported-instance-types). Format: emr-x.x.x (e.g., emr-6.10.0). |
Tool: manage_aws_emr_ec2_steps
Manage AWS EMR EC2 steps for processing data on EMR clusters.
This tool provides comprehensive operations for managing EMR steps, which are units of work submitted to an EMR cluster for execution. Steps typically consist of Hadoop or Spark jobs that process and analyze data.
Requirements
- The server must be run with the
--allow-writeflag for add-steps and cancel-steps operations - Appropriate AWS permissions for EMR step operations
Operations
- add-steps: Add new steps to a running EMR cluster (max 256 steps per job flow)
- cancel-steps: Cancel pending or running steps on an EMR cluster (EMR 4.8.0+ except 5.0.0)
- describe-step: Get detailed information about a specific step's configuration and status
- list-steps: List and filter steps for an EMR cluster with pagination support
Usage Tips
- Each step consists of a JAR file, its main class, and arguments
- Steps are executed in the order listed and must exit with zero code to be considered complete
- For cancel-steps, you can specify SEND_INTERRUPT (default) or TERMINATE_PROCESS as cancellation option
- When listing steps, filter by step states: PENDING, CANCEL_PENDING, RUNNING, COMPLETED, CANCELLED, FAILED, INTERRUPTED
- For large result sets, use pagination with marker parameter
Example
# Add a Spark step to process data
{
'operation': 'add-steps',
'cluster_id': 'j-2AXXXXXXGAPLF',
'steps': [
{
'Name': 'Spark Data Processing',
'ActionOnFailure': 'CONTINUE',
'HadoopJarStep': {
'Jar': 'command-runner.jar',
'Args': [
'spark-submit',
'--class',
'com.example.SparkProcessor',
's3://mybucket/myapp.jar',
'arg1',
'arg2',
],
},
}
],
}
| Parameters | Type | Description |
|---|---|---|
cluster_id |
string |
ID of the EMR cluster. |
operation |
string |
Operation to perform: add-steps, cancel-steps, describe-step, list-steps. Choose read-only operations when write access is disabled. |
marker |
string optional |
The pagination token for list-steps operation. |
step_cancellation_option |
string optional |
Option for canceling steps. Valid values: SEND_INTERRUPT, TERMINATE_PROCESS. Default is SEND_INTERRUPT. |
step_id |
string optional |
ID of the EMR step (required for describe-step). |
step_ids |
string optional |
List of EMR step IDs (required for cancel-steps, optional for list-steps). |
step_states |
string optional |
The step state filters to apply when listing steps (optional for list-steps). Valid values: PENDING, CANCEL_PENDING, RUNNING, COMPLETED, CANCELLED, FAILED, INTERRUPTED. |
steps |
string optional |
List of steps to add to the cluster (required for add-steps). Each step should include Name, ActionOnFailure, and HadoopJarStep. |
Tool: manage_aws_glue_catalog
Manage AWS Glue Data Catalog with both read and write operations.
This tool provides operations for managing the Glue Data Catalog itself, including creating custom catalogs, importing from external sources, and managing catalog-level configurations.
Requirements
- The server must be run with the
--allow-writeflag for create-catalog, delete-catalog, and import operations - Appropriate AWS permissions for Glue Data Catalog operations
- For import operations, access to the external data source is required
Operations
- create-catalog: Create a new data catalog
- delete-catalog: Delete an existing data catalog
- get-catalog: Retrieve detailed information about a specific catalog
- list-catalogs: List all available catalogs
- import-catalog-to-glue: Import metadata from external sources into Glue Data Catalog
Usage Tips
- The default catalog ID is your AWS account ID
- Custom catalogs allow for better organization and access control
- Import operations can take significant time depending on source size
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-catalog, delete-catalog, get-catalog, list-catalogs, or import-catalog-to-glue. Choose "get-catalog" or "list-catalogs" for read-only operations. |
catalog_id |
string optional |
ID of the catalog (required for create-catalog, delete-catalog, get-catalog, and import-catalog-to-glue operations). |
catalog_input |
string optional |
Catalog definition for create-catalog operations. |
max_results |
string optional |
The maximum number of catalogs to return in one response. |
next_token |
string optional |
A continuation token, if this is a continuation call. |
parent_catalog_id |
string optional |
The ID of the parent catalog in which the catalog resides. If none is provided, the AWS Account Number is used by default. |
Tool: manage_aws_glue_classifiers
Manage AWS Glue classifiers to determine data formats and schemas.
This tool provides operations for AWS Glue classifiers, which help determine the schema of your data. Classifiers analyze data samples to infer formats and structures, enabling accurate schema creation when crawlers process your data sources.
Requirements
- The server must be run with the
--allow-writeflag for create, delete, and update operations - Appropriate AWS permissions for Glue classifier operations
Operations
- create-classifier: Create a new custom classifier (CSV, JSON, XML, or GROK)
- delete-classifier: Remove an existing classifier
- get-classifier: Retrieve detailed information about a specific classifier
- get-classifiers: List all available classifiers
- update-classifier: Modify an existing classifier's configuration
Example
# Create a CSV classifier
{
'operation': 'create-classifier',
'classifier_definition': {
'CsvClassifier': {
'Name': 'my-csv-classifier',
'Delimiter': ',',
'QuoteSymbol': '"',
'ContainsHeader': 'PRESENT',
'Header': ['id', 'name', 'date', 'value'],
'AllowSingleColumn': false,
}
},
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-classifier, delete-classifier, get-classifier, get-classifiers, update-classifier. Choose "get-classifier" or "get-classifiers" for read-only operations when write access is disabled. |
classifier_definition |
string optional |
Classifier definition for create-classifier and update-classifier operations. Must include one of GrokClassifier, XMLClassifier, JsonClassifier, or CsvClassifier. |
classifier_name |
string optional |
Name of the classifier (required for delete-classifier and get-classifier operations). |
max_results |
string optional |
Maximum number of results to return for get-classifiers operation. |
next_token |
string optional |
Pagination token for get-classifiers operation. |
Tool: manage_aws_glue_connections
Manage AWS Glue Data Catalog connections with both read and write operations.
Connections in AWS Glue store connection information for data stores, such as databases, data warehouses, and other data sources. They contain connection properties like JDBC URLs, usernames, and other metadata needed to connect to external data sources.
Requirements
- The server must be run with the
--allow-writeflag for create, update, and delete operations - Appropriate AWS permissions for Glue Data Catalog operations
- Connection properties must be valid for the connection type
Operations
- create-connection: Create a new connection
- delete-connection: Delete an existing connection
- get-connection: Retrieve detailed information about a specific connection
- list-connections: List all connections
- update-connection: Update an existing connection's properties
Usage Tips
- Connection names must be unique within your catalog
- Connection input should include ConnectionType and ConnectionProperties
- Use get or list operations to check existing connections before creating
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-connection, delete-connection, get-connection, list-connections, or update-connection. Choose "get-connection" or "list-connections" for read-only operations. |
catalog_id |
string optional |
Catalog ID for the connection (optional, defaults to account ID). |
connection_input |
string optional |
Connection definition for create and update operations. |
connection_name |
string optional |
Name of the connection (required for create-connection, delete-connection, get-connection, and update-connection operations). |
hide_password |
string optional |
Flag to retrieve the connection metadata without returning the password(for get-connection and list-connections operation). |
max_results |
string optional |
The maximum number of connections to return in one response. |
next_token |
string optional |
A continuation token, if this is a continuation call. |
Tool: manage_aws_glue_crawler_management
Manage AWS Glue crawler schedules and monitor performance metrics.
This tool provides operations for controlling crawler schedules and retrieving performance metrics. Use it to automate crawler runs on a schedule and monitor crawler efficiency and status.
Requirements
- The server must be run with the
--allow-writeflag for schedule management operations - Appropriate AWS permissions for Glue crawler operations
Operations
- get-crawler-metrics: Retrieve performance statistics about crawlers
- start-crawler-schedule: Activate a crawler's schedule
- stop-crawler-schedule: Deactivate a crawler's schedule
- update-crawler-schedule: Modify a crawler's schedule with a new cron expression
Example
# Update a crawler's schedule to run daily at 2:30 AM UTC
{
'operation': 'update-crawler-schedule',
'crawler_name': 'my-s3-data-crawler',
'schedule': 'cron(30 2 * * ? *)',
}
# Get metrics for specific crawlers
{
'operation': 'get-crawler-metrics',
'crawler_name_list': ['my-s3-data-crawler', 'my-jdbc-crawler'],
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: get-crawler-metrics, start-crawler-schedule, stop-crawler-schedule, update-crawler-schedule. Choose "get-crawler-metrics" for read-only operations when write access is disabled. |
crawler_name |
string optional |
Name of the crawler (required for start-crawler-schedule, stop-crawler-schedule, and update-crawler-schedule operations). |
crawler_name_list |
string optional |
List of crawler names for get-crawler-metrics operation (optional). |
max_results |
string optional |
Maximum number of results to return for get-crawler-metrics operation (optional). |
schedule |
string optional |
Cron expression for the crawler schedule (required for update-crawler-schedule operation). |
Tool: manage_aws_glue_crawlers
Manage AWS Glue crawlers to discover and catalog data sources.
This tool provides comprehensive operations for AWS Glue crawlers, which automatically discover and catalog data from various sources like S3, JDBC databases, DynamoDB, and more. Crawlers examine your data sources, determine schemas, and register metadata in the AWS Glue Data Catalog.
Requirements
- The server must be run with the
--allow-writeflag for create, delete, start, stop, and update operations - Appropriate AWS permissions for Glue crawler operations
Operations
- create-crawler: Create a new crawler with specified targets, role, and configuration
- delete-crawler: Remove an existing crawler from AWS Glue
- get-crawler: Retrieve detailed information about a specific crawler
- get-crawlers: List all crawlers with pagination
- batch-get-crawlers: Retrieve multiple specific crawlers in a single call
- list-crawlers: List all crawlers with tag-based filtering
- start-crawler: Initiate a crawler run immediately
- stop-crawler: Halt a currently running crawler
- update-crawler: Modify an existing crawler's configuration
Example
# Create a new S3 crawler
{
'operation': 'create-crawler',
'crawler_name': 'my-s3-data-crawler',
'crawler_definition': {
'Role': 'arn:aws:iam::123456789012:role/GlueServiceRole',
'Targets': {'S3Targets': [{'Path': 's3://my-bucket/data/'}]},
'DatabaseName': 'my_catalog_db',
'Description': 'Crawler for S3 data files',
'Schedule': 'cron(0 0 * * ? *)',
'TablePrefix': 'raw_',
},
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-crawler, delete-crawler, get-crawler, get-crawlers, start-crawler, stop-crawler, batch-get-crawlers, list-crawlers, update-crawler. Choose "get-crawler", "get-crawlers", "batch-get-crawlers", or "list-crawlers" for read-only operations when write access is disabled. |
crawler_definition |
string optional |
Crawler definition for create-crawler and update-crawler operations. |
crawler_name |
string optional |
Name of the crawler (required for all operations except get-crawlers, batch-get-crawlers, and list-crawlers). |
crawler_names |
string optional |
List of crawler names for batch-get-crawlers operation. |
max_results |
string optional |
Maximum number of results to return for get-crawlers and list-crawlers operations. |
next_token |
string optional |
Pagination token for get-crawlers and list-crawlers operations. |
tags |
string optional |
Tags to filter crawlers by for list-crawlers operation. |
Tool: manage_aws_glue_databases
Manage AWS Glue Data Catalog databases with both read and write operations.
This tool provides operations for managing Glue Data Catalog databases, including creating, updating, retrieving, listing, and deleting databases. It serves as the primary mechanism for database management within the AWS Glue Data Catalog.
Requirements
- The server must be run with the
--allow-writeflag for create-database, update-database, and delete-database operations - Appropriate AWS permissions for Glue Data Catalog operations
Operations
- create-database: Create a new database in the Glue Data Catalog
- delete-database: Delete an existing database from the Glue Data Catalog
- get-database: Retrieve detailed information about a specific database
- list-databases: List all databases in the Glue Data Catalog
- update-database: Update an existing database's properties
Usage Tips
- Use the get-database or list-databases operations first to check existing databases
- Database names must be unique within your AWS account and region
- Deleting a database will also delete all tables within it
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-database, delete-database, get-database, list-databases, or update-database. Choose "get-database" or "list-databases" for read-only operations when write access is disabled. |
catalog_id |
string optional |
ID of the catalog (optional, defaults to account ID). |
database_name |
string optional |
Name of the database (required for create-database, delete-database, get-database, and update-database operations). |
description |
string optional |
Description of the database (for create-database and update-database operations). |
location_uri |
string optional |
Location URI of the database (for create-database and update-database operations). |
max_results |
string optional |
The maximum number of databases to return in one response. |
next_token |
string optional |
A continuation token, if this is a continuation call. |
parameters |
string optional |
Key-value pairs that define parameters and properties of the database. |
Tool: manage_aws_glue_encryption
Manage AWS Glue Data Catalog Encryption Settings for data protection.
This tool allows you to retrieve and update AWS Glue Data Catalog Encryption Settings, which control how metadata and connection passwords are encrypted in the Data Catalog.
Requirements
- The server must be run with the
--allow-writeflag for put-catalog-encryption-settings operation - Appropriate AWS permissions for Glue Data Catalog Encryption operations
Operations
- get-catalog-encryption-settings: Retrieve the current encryption settings for the Data Catalog
- put-catalog-encryption-settings: Update the encryption settings for the Data Catalog
Example
{
"operation": "put-catalog-encryption-settings",
"encryption_at_rest": {
"CatalogEncryptionMode": "SSE-KMS",
"SseAwsKmsKeyId": "arn:aws:kms:region:account-id:key/key-id"
},
"connection_password_encryption": {
"ReturnConnectionPasswordEncrypted": true,
"AwsKmsKeyId": "arn:aws:kms:region:account-id:key/key-id"
}
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: get-catalog-encryption-settings, put-catalog-encryption-settings. Choose "get-catalog-encryption-settings" for read-only operations when write access is disabled. |
catalog_id |
string optional |
ID of the Data Catalog to retrieve or update encryption settings for (defaults to caller's AWS account ID). |
connection_password_encryption |
string optional |
Connection password encryption configuration for the Data Catalog (for put-catalog-encryption-settings operation). |
encryption_at_rest |
string optional |
Encryption-at-rest configuration for the Data Catalog (for put-catalog-encryption-settings operation). |
Tool: manage_aws_glue_jobs
Manage AWS Glue ETL jobs and job runs with both read and write operations.
This tool provides comprehensive operations for managing AWS Glue ETL jobs and job runs, including creating, updating, retrieving, listing, starting, stopping, and monitoring jobs.
Requirements
- The server must be run with the
--allow-writeflag for create-job, delete-job, update-job, start-job-run, stop-job-run, and batch-stop-job-run operations - Appropriate AWS permissions for Glue ETL job operations
Job Operations
- create-job: Create a new ETL job in AWS Glue
- delete-job: Delete an existing ETL job from AWS Glue
- get-job: Retrieve detailed information about a specific job
- get-jobs: List all jobs in your AWS Glue account
- update-job: Update an existing job's properties
- start-job-run: Start a job run using a job name
Job Run Operations
- stop-job-run: Stop a job run using a job name and run ID
- get-job-run: Retrieve detailed information about a specific job run
- get-job-runs: List all job runs for a specific job
- batch-stop-job-run: Stop one or more running jobs
Usage Tips
- Job names must be unique within your AWS account and region
- Create a script required by the customer and push the script to a customer S3 Location. Ask for S3 Location if not provided.
- Verify if the IAM role used has glue trusted entities in the role if not update the role or create a new one
- Job definitions should include command, role, and other required parameters
- As rule of thumb use Glue Version 5.0 or latest to create jobs
Examples
# Create a new Spark ETL job
{
'operation': 'create-job',
'job_name': 'my-etl-job',
'job_definition': {
'Role': 'arn:aws:iam::123456789012:role/GlueETLRole',
'Command': {
'Name': 'glueetl',
'ScriptLocation': 's3://my-bucket/scripts/etl-script.py',
},
'GlueVersion': '5.0',
'MaxRetries': 2,
'Timeout': 120,
'WorkerType': 'G.1X',
'NumberOfWorkers': 5,
},
}
# Start a job run
{
'operation': 'start-job-run',
'job_name': 'my-etl-job',
'worker_type': 'G.1X',
'number_of_workers': 5,
}
# Get details of a specific job run
{
'operation': 'get-job-run',
'job_name': 'my-etl-job',
'job_run_id': 'jr_1234567890abcdef0',
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-job, delete-job, get-job, get-jobs, update-job, start-job-run, stop-job-run, get-job-run, get-job-runs, batch-stop-job-run, get-job-bookmark, reset-job-bookmark. Choose "get-job", "get-jobs", "get-job-run", "get-job-runs", or "get-job-bookmark" for read-only operations when write access is disabled. |
execution_class |
string optional |
Execution class for start-job-run operation (STANDARD or FLEX). |
job_arguments |
string optional |
Job arguments for start-job-run operation. These replace the default arguments set in the job definition. |
job_definition |
string optional |
Job definition for create-job and update-job operations. For create-job, must include Role and Command parameters. |
job_name |
string optional |
Name of the job (required for all operations except get-jobs). |
job_run_id |
string optional |
Job run ID for get-job-run, stop-job-run operations, or to retry for start-job-run operation. |
job_run_ids |
string optional |
List of job run IDs for batch-stop-job-run operation. |
job_run_queuing_enabled |
string optional |
Whether job run queuing is enabled for start-job-run operation. |
max_capacity |
string optional |
Maximum capacity in DPUs for start-job-run operation (not compatible with worker_type and number_of_workers). |
max_results |
string optional |
Maximum number of results to return for get-jobs or get-job-runs operations. |
next_token |
string optional |
Pagination token for get-jobs or get-job-runs operations. |
number_of_workers |
string optional |
Number of workers for start-job-run operation. |
predecessors_included |
string optional |
Whether to include predecessor runs in get-job-run operation. |
security_configuration |
string optional |
Security configuration name for start-job-run operation. |
timeout |
string optional |
Timeout in minutes for start-job-run operation. |
worker_type |
string optional |
Worker type for start-job-run operation (G.1X, G.2X, G.4X, G.8X, G.025X for Spark jobs, Z.2X for Ray jobs). |
Tool: manage_aws_glue_partitions
Manage AWS Glue Data Catalog partitions with both read and write operations.
Partitions in AWS Glue represent a way to organize table data based on the values of one or more columns. They enable efficient querying and processing of large datasets by allowing queries to target specific subsets of data.
Requirements
- The server must be run with the
--allow-writeflag for create-partition, update-partition, and delete-partition operations - Database and table must exist before creating partitions
- Partition values must match the partition schema defined in the table
Operations
- create-partition: Create a new partition in the specified table
- delete-partition: Delete an existing partition from the table
- get-partition: Retrieve detailed information about a specific partition
- list-partitions: List all partitions in the specified table
- update-partition: Update an existing partition's properties
Usage Tips
- Partition values must be provided in the same order as partition columns in the table
- Use get-partition or list-partitions operations to check existing partitions before creating
- Partition input should include storage descriptor and location information
| Parameters | Type | Description |
|---|---|---|
database_name |
string |
Name of the database containing the table. |
operation |
string |
Operation to perform: create-partition, delete-partition, get-partition, list-partitions, or update-partition. Choose "get-partition" or "list-partitions" for read-only operations. |
table_name |
string |
Name of the table containing the partition. |
catalog_id |
string optional |
ID of the catalog (optional, defaults to account ID). |
expression |
string optional |
Filter expression for list-partitions operation. |
max_results |
string optional |
Maximum number of results to return for list-partitions operation. |
next_token |
string optional |
A continuation token, if this is not the first call to retrieve these partitions. |
partition_input |
string optional |
Partition definition for create-partition and update-partition operations. |
partition_values |
string optional |
Values that define the partition (required for create-partition, delete-partition, get-partition, and update-partition operations). |
Tool: manage_aws_glue_resource_policies
Manage AWS Glue Resource Policies for access control.
This tool allows you to retrieve, create, update, and delete AWS Glue Resource Policies, which control access to Glue resources through IAM policy documents.
Requirements
- The server must be run with the
--allow-writeflag for put-resource-policy and delete-resource-policy operations - Appropriate AWS permissions for Glue Resource Policy operations
Operations
- get-resource-policy: Retrieve the current resource policy
- put-resource-policy: Create or update the resource policy
- delete-resource-policy: Delete the resource policy
Example
{
"operation": "put-resource-policy",
"policy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::123456789…
"policy_exists_condition": "NOT_EXIST",
"enable_hybrid": true
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: get-resource-policy, put-resource-policy, delete-resource-policy. Choose "get-resource-policy" for read-only operations when write access is disabled. |
enable_hybrid |
string optional |
Whether to enable hybrid access policy for put-resource-policy operation. |
policy |
string optional |
Resource policy document for put-resource-policy operation. |
policy_exists_condition |
string optional |
Condition under which to update or delete the policy (MUST_EXIST or NOT_EXIST). |
policy_hash |
string optional |
Hash of the policy to update or delete. |
resource_arn |
string optional |
ARN of the Glue resource for the resource policy (optional). |
Tool: manage_aws_glue_security_configurations
Manage AWS Glue Security Configurations for data encryption.
This tool allows you to create, retrieve, and delete AWS Glue Security Configurations, which define encryption settings for Glue jobs, crawlers, and development endpoints.
Requirements
- The server must be run with the
--allow-writeflag for create-security-configuration and delete-security-configuration operations - Appropriate AWS permissions for Glue Security Configuration operations
Operations
- create-security-configuration: Create a new security configuration with encryption settings
- delete-security-configuration: Delete an existing security configuration
- get-security-configuration: Retrieve detailed information about a specific security configuration
Example
{
"operation": "create-security-configuration",
"config_name": "my-encryption-config",
"encryption_configuration": {
"S3Encryption": [
{
"S3EncryptionMode": "SSE-KMS",
"KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id"
}
],
"CloudWatchEncryption": {
"CloudWatchEncryptionMode": "DISABLED"
},
"JobBookmarksEncryption": {
"JobBookmarksEncryptionMode": "CSE-KMS",
"KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id"
}
}
}
| Parameters | Type | Description |
|---|---|---|
config_name |
string |
Name of the security configuration. |
operation |
string |
Operation to perform: create-security-configuration, delete-security-configuration, get-security-configuration. Choose "get-security-configuration" for read-only operations when write access is disabled. |
encryption_configuration |
string optional |
Encryption configuration for create-security-configuration operation, containing settings for S3, CloudWatch, and job bookmarks encryption. |
Tool: manage_aws_glue_sessions
Manage AWS Glue Interactive Sessions for running Spark and Ray workloads.
This tool provides operations for creating and managing Glue Interactive Sessions, which enable interactive development and execution of Spark ETL scripts and Ray applications. Interactive sessions provide a responsive environment for data exploration, debugging, and iterative development.
Requirements
- The server must be run with the
--allow-writeflag for create-session, delete-session, and stop-session operations - Appropriate AWS permissions for Glue Interactive Session operations
Operations
- create-session: Create a new interactive session with specified configuration
- delete-session: Delete an existing interactive session
- get-session: Retrieve detailed information about a specific session
- list-sessions: List all interactive sessions with optional filtering
- stop-session: Stop a running interactive session
Example
# Create a new Spark ETL session
{
'operation': 'create-session',
'session_id': 'my-spark-session',
'role': 'arn:aws:iam::123456789012:role/GlueInteractiveSessionRole',
'command': {'Name': 'glueetl', 'PythonVersion': '3'},
'glue_version': '3.0',
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-session, delete-session, get-session, list-sessions, stop-session. Choose "get-session" or "list-sessions" for read-only operations when write access is disabled. |
command |
string optional |
Session command with Name (e.g., 'glueetl', 'gluestreaming') and optional PythonVersion (required for create-session operation). |
connections |
string optional |
Connections to use for the session (optional for create-session operation). |
default_arguments |
string optional |
Map of key-value pairs for session arguments (optional for create-session operation). |
description |
string optional |
Description of the session (optional for create-session operation). |
glue_version |
string optional |
Glue version to use (must be greater than 2.0) (optional for create-session operation). |
idle_timeout |
string optional |
Number of minutes when idle before session times out (optional for create-session operation). |
max_capacity |
string optional |
Number of Glue data processing units (DPUs) to allocate (optional for create-session operation). |
max_results |
string optional |
Maximum number of results to return for list-sessions operation. |
next_token |
string optional |
Pagination token for list-sessions operation. |
number_of_workers |
string optional |
Number of workers to use for the session (optional for create-session operation). |
request_origin |
string optional |
Origin of the request (optional for all operations). |
role |
string optional |
IAM Role ARN (required for create-session operation). |
security_configuration |
string optional |
Name of the SecurityConfiguration structure (optional for create-session operation). |
session_id |
string optional |
ID of the session (required for delete-session, get-session, and stop-session operations). |
tags |
string optional |
Map of key-value pairs (tags) for the session (optional for create-session operation). |
timeout |
string optional |
Number of minutes before session times out (optional for create-session operation). |
worker_type |
string optional |
Type of predefined worker (G.1X, G.2X, G.4X, G.8X, Z.2X) (optional for create-session operation). |
Tool: manage_aws_glue_statements
Manage AWS Glue Interactive Session Statements for executing code and retrieving results.
This tool provides operations for executing code, canceling running statements, and retrieving results within Glue Interactive Sessions. It enables interactive data processing, exploration, and analysis using Spark or Ray in AWS Glue.
Requirements
- The server must be run with the
--allow-writeflag for run-statement and cancel-statement operations - Appropriate AWS permissions for Glue Interactive Session Statement operations
- A valid session ID is required for all operations
Operations
- run-statement: Execute code in an interactive session and get a statement ID
- cancel-statement: Cancel a running statement by ID
- get-statement: Retrieve detailed information and results of a specific statement
- list-statements: List all statements in a session with their status
Example
# Run a PySpark statement in a session
{
'operation': 'run-statement',
'session_id': 'my-spark-session',
'code': "df = spark.read.csv('s3://my-bucket/data.csv', header=True)\ndf.show(5)",
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: run-statement, cancel-statement, get-statement, list-statements. Choose "get-statement" or "list-statements" for read-only operations when write access is disabled. |
session_id |
string |
ID of the session (required for all operations). |
code |
string optional |
Code to execute for run-statement operation (up to 68000 characters). |
max_results |
string optional |
Maximum number of results to return for list-statements operation. |
next_token |
string optional |
Pagination token for list-statements operation. |
request_origin |
string optional |
Origin of the request (optional for all operations). |
statement_id |
string optional |
ID of the statement (required for cancel-statement and get-statement operations). |
Tool: manage_aws_glue_tables
Manage AWS Glue Data Catalog tables with both read and write operations.
This tool provides comprehensive operations for managing Glue Data Catalog tables, including creating, updating, retrieving, listing, searching, and deleting tables. Tables define the schema and metadata for data stored in various formats and locations.
Requirements
- The server must be run with the
--allow-writeflag for create-table, update-table, and delete-table operations - Database must exist before creating tables within it
- Appropriate AWS permissions for Glue Data Catalog operations
Operations
- create-table: Create a new table in the specified database
- delete-table: Delete an existing table from the database
- get-table: Retrieve detailed information about a specific table
- list-tables: List all tables in the specified database
- update-table: Update an existing table's properties
- search-tables: Search for tables using text matching
Usage Tips
- Table names must be unique within a database
- Use get-table or list-tables operations to check existing tables before creating
- Table input should include storage descriptor, columns, and partitioning information
| Parameters | Type | Description |
|---|---|---|
database_name |
string |
Name of the database containing the table. |
operation |
string |
Operation to perform: create-table, delete-table, get-table, list-tables, update-table, or search-tables. Choose "get-table", "list-tables", or "search-tables" for read-only operations. |
catalog_id |
string optional |
ID of the catalog (optional, defaults to account ID). |
max_results |
string optional |
Maximum number of results to return for list and search-tables operations. |
next_token |
string optional |
A continuation token, included if this is a continuation call. |
search_text |
string optional |
Search text for search-tables operation. |
table_input |
string optional |
Table definition for create-table and update-table operations. |
table_name |
string optional |
Name of the table (required for create-table, delete-table, get-table, and update-table operations). |
Tool: manage_aws_glue_triggers
Manage AWS Glue triggers to automate workflow and job execution.
This tool allows you to create, delete, retrieve, list, start, and stop AWS Glue triggers. Triggers define the conditions that automatically start jobs or workflows, enabling scheduled or event-based execution of your ETL processes.
Requirements
- The server must be run with the
--allow-writeflag for create-trigger, delete-trigger, start-trigger, and stop-trigger operations - Appropriate AWS permissions for Glue trigger operations
Operations
- create-trigger: Create a new trigger with specified type (SCHEDULED, CONDITIONAL, ON_DEMAND, EVENT) and actions
- delete-trigger: Delete an existing trigger by name
- get-trigger: Retrieve detailed information about a specific trigger
- get-triggers: List all triggers with pagination support
- start-trigger: Activate a trigger to begin monitoring for its firing conditions
- stop-trigger: Deactivate a trigger to pause its monitoring
Trigger Types
- SCHEDULED: Time-based triggers that run on a cron schedule
- CONDITIONAL: Event-based triggers that run when specified conditions are met
- ON_DEMAND: Manually activated triggers
- EVENT: EventBridge event-based triggers
Example
# Create a scheduled trigger
manage_aws_glue_triggers(
operation='create-trigger',
trigger_name='daily-etl-trigger',
trigger_definition={
'Type': 'SCHEDULED',
'Schedule': 'cron(0 12 * * ? *)', # Run daily at 12:00 UTC
'Actions': [{'JobName': 'process-daily-data'}],
'Description': 'Trigger for daily ETL job',
'StartOnCreation': True,
},
)
# Create a conditional trigger
manage_aws_glue_triggers(
operation='create-trigger',
trigger_name='data-arrival-trigger',
trigger_definition={
'Type': 'CONDITIONAL',
'Actions': [{'JobName': 'process-new-data'}],
'Predicate': {
'Conditions': [
{
'LogicalOperator': 'EQUALS',
'JobName': 'crawl-new-data',
'State': 'SUCCEEDED',
}
]
},
'Description': 'Trigger that runs when data crawling completes',
},
)
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-trigger, delete-trigger, get-trigger, get-triggers, start-trigger, stop-trigger. Choose "get-trigger" or "get-triggers" for read-only operations when write access is disabled. |
max_results |
string optional |
Maximum number of results to return for get-triggers operation. |
next_token |
string optional |
Pagination token for get-triggers operation. |
trigger_definition |
string optional |
Trigger definition for create-trigger operation. |
trigger_name |
string optional |
Name of the trigger (required for all operations except get-triggers). |
Tool: manage_aws_glue_usage_profiles
Manage AWS Glue Usage Profiles for resource allocation and cost management.
This tool allows you to create, retrieve, update, and delete AWS Glue Usage Profiles, which define resource allocation and cost management settings for Glue jobs and interactive sessions.
Requirements
- The server must be run with the
--allow-writeflag for create-profile, delete-profile, and update-profile operations - Appropriate AWS permissions for Glue Usage Profile operations
Operations
- create-profile: Create a new usage profile with specified resource allocations
- delete-profile: Delete an existing usage profile
- get-profile: Retrieve detailed information about a specific usage profile
- update-profile: Update an existing usage profile's configuration
Example
{
"operation": "create-profile",
"profile_name": "my-standard-profile",
"description": "Standard resource allocation for ETL jobs",
"configuration": {
"JobConfiguration": {
"numberOfWorkers": {
"DefaultValue": "10",
"MinValue": "1",
"MaxValue": "10"
},
"workerType": {
"DefaultValue": "G.2X",
"AllowedValues": [
"G.2X",
"G.4X",
"G.8X"
]
},
}
}
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-profile, delete-profile, get-profile, update-profile. Choose "get-profile" for read-only operations when write access is disabled. |
profile_name |
string |
Name of the usage profile. |
configuration |
string optional |
Configuration object specifying job and session values for the profile (required for create-profile and update-profile operations). |
description |
string optional |
Description of the usage profile (for create-profile and update-profile operations). |
tags |
string optional |
Tags to apply to the usage profile (for create-profile operation). |
Tool: manage_aws_glue_workflows
Manage AWS Glue workflows to orchestrate complex ETL activities.
This tool allows you to create, delete, retrieve, list, and start AWS Glue workflows. Workflows help you design and visualize complex ETL activities as a series of dependent jobs and crawlers, making it easier to manage and monitor your data processing pipelines.
Requirements
- The server must be run with the
--allow-writeflag for create-workflow, delete-workflow, and start-workflow-run operations - Appropriate AWS permissions for Glue workflow operations
Operations
- create-workflow: Create a new workflow with optional description, default run properties, tags, and max concurrent runs
- delete-workflow: Delete an existing workflow by name
- get-workflow: Retrieve detailed information about a specific workflow with optional graph inclusion
- list-workflows: List all workflows with pagination support
- start-workflow-run: Start a workflow run with optional run properties
Example
# Create a new workflow
manage_aws_glue_workflows(
operation='create-workflow',
workflow_name='my-etl-workflow',
workflow_definition={
'Description': 'ETL workflow for daily data processing',
'DefaultRunProperties': {'ENV': 'production'},
'MaxConcurrentRuns': 1,
},
)
# Start a workflow run
manage_aws_glue_workflows(
operation='start-workflow-run',
workflow_name='my-etl-workflow',
workflow_definition={'run_properties': {'EXECUTION_DATE': '2023-06-19'}},
)
| Parameters | Type | Description |
|---|---|---|
operation |
string |
Operation to perform: create-workflow, delete-workflow, get-workflow, list-workflows, start-workflow-run. Choose "get-workflow" or "list-workflows" for read-only operations when write access is disabled. |
max_results |
string optional |
Maximum number of results to return for list-workflows operation. |
next_token |
string optional |
Pagination token for list-workflows operation. |
workflow_definition |
string optional |
Workflow definition for create-workflow operation. |
workflow_name |
string optional |
Name of the workflow (required for all operations except list-workflows). |
Tool: upload_to_s3
Upload Python code content directly to an S3 bucket using putObject.
This tool uploads Python code content directly to an S3 bucket, commonly used for storing Glue job scripts, EMR step scripts, or other data processing code. The uploaded file can be referenced by data processing services.
Requirements
- The server must be run with the
--allow-writeflag - Valid AWS credentials with permissions to write to the specified S3 bucket
- The bucket must exist and be accessible
Usage Tips
- Use descriptive S3 keys that include version information or timestamps
- Store scripts in organized folder structures (e.g., glue-jobs/, emr-steps/)
- Consider using versioning on the S3 bucket for script history
- The returned S3 URI can be used directly in Glue job configurations
| Parameters | Type | Description |
|---|---|---|
bucket_name |
string |
Name of the S3 bucket |
code_content |
string |
String containing Python code to upload |
s3_key |
string |
S3 object key (path within the bucket) |
make_public |
boolean optional |
Whether to make the file publicly accessible (default: False) |
Use this MCP Server
{
"mcpServers": {
"aws-dataprocessing": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/aws-dataprocessing-mcp-server"
]
}
}
}