get_experiment
Retrieve detailed information about a specific AWS Fault Injection Service experiment by providing its ID, including status, configuration, and results.
Instructions
Get detailed information about a specific AWS FIS experiment.
Args:
experiment_id: ID of the experiment to retrieve
region: AWS region to query (default: us-east-1)
Returns:
JSON string containing detailed experiment information
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| experiment_id | Yes | ||
| region | No | us-east-1 |
Implementation Reference
- aws_fis_mcp/tools.py:154-177 (handler)Core handler function implementing the 'get_experiment' tool. Uses boto3 to fetch experiment details from AWS FIS, serializes datetimes, and returns JSON.def get_experiment(experiment_id: str, region: str = "us-east-1") -> str: """ Get detailed information about a specific AWS FIS experiment. Args: experiment_id: ID of the experiment to retrieve region: AWS region to query (default: us-east-1) Returns: JSON string containing detailed experiment information """ try: fis = boto3.client('fis', region_name=region) response = fis.get_experiment(id=experiment_id) # Get the raw experiment data experiment = response.get('experiment', {}) # Use the recursive datetime serializer to handle all datetime objects serialized_experiment = _serialize_datetime(experiment) return json.dumps(serialized_experiment, indent=2) except Exception as e: return f"Error retrieving experiment: {str(e)}"
- aws_fis_mcp/server.py:24-34 (registration)Registration of all tools including 'get_experiment' using FastMCP's app.tool() decorator.# Register all tools app.tool()(list_experiment_templates) app.tool()(get_experiment_template) app.tool()(list_experiments) app.tool()(get_experiment) app.tool()(start_experiment) app.tool()(stop_experiment) app.tool()(create_experiment_template) app.tool()(delete_experiment_template) app.tool()(list_action_types) app.tool()(generate_template_example)
- aws_fis_mcp/tools.py:34-51 (helper)Helper utility function used by get_experiment to serialize datetime objects in the response.def _serialize_datetime(obj: Any) -> Any: """ Recursively serialize datetime objects to ISO format strings. Args: obj: Object that may contain datetime objects Returns: Object with datetime objects converted to ISO format strings """ if isinstance(obj, datetime): return obj.isoformat() elif isinstance(obj, dict): return {key: _serialize_datetime(value) for key, value in obj.items()} elif isinstance(obj, list): return [_serialize_datetime(item) for item in obj] else: return obj