AWS Notebook Runner MCP
Allows running Jupyter notebooks on temporary AWS compute resources (EC2) managed via Systems Manager (SSM), with S3 artifact storage, cost estimation, and automatic cleanup.
Enables inspection, estimation, planning, and execution of Jupyter notebooks on AWS infrastructure, with support for .ipynb files and nbconvert.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AWS Notebook Runner MCPRun my analysis notebook with dry-run first"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AWS Notebook Runner MCP
Run Jupyter notebooks on temporary AWS compute through an MCP server, with dry-run planning, guardrails, progress reporting, cost estimates, S3 artifacts, and automatic cleanup.
This is not Google Colab automation and it does not bypass provider limits. It is an AI-facing wrapper for AWS notebook execution. The current working execution backend is EC2 + Systems Manager (SSM). A SageMaker Notebook Jobs backend is included for planning and future execution, but it depends on your AWS account quotas.
This project is not affiliated with, endorsed by, or sponsored by Amazon Web Services. AWS and Amazon SageMaker are trademarks of Amazon.com, Inc. or its affiliates.
AI-Readable Manifest
This repository includes manifest.0, a Zero Lang description of the MCP server's purpose, capabilities, and boundaries. It is intended to help AI agents understand that this package is an AWS notebook execution runner with guardrails, not Google Colab automation or a provider-limit bypass tool.
Related MCP server: AWS FinOps MCP Server
What It Can Do
Inspect a local
.ipynbunder an allowlisted local root.Estimate compute cost before launch.
Build dry-run plans without starting paid compute.
Start a temporary EC2 instance for a notebook run.
Execute the notebook through SSM with
nbconvert.Upload the executed notebook and artifacts to S3.
Report progress, elapsed time, ETA, SSM status, EC2 state, artifacts, and current compute cost estimate.
Terminate the EC2 instance automatically after completion.
Refuse paid compute unless both an environment flag and confirmation token are provided.
What It Does Not Do
It does not create or broaden IAM permissions.
It does not manage arbitrary AWS resources.
It does not open SSH ports.
It does not provide exact cell-level progress yet.
It does not include memory/filesystem metrics unless you add SSM snapshots or CloudWatch Agent support.
It does not make AWS quota requests.
Install
From PyPI, after publication:
pip install "aws-notebook-runner-mcp[aws]"From a local checkout:
python3 -m venv .venv
.venv/bin/pip install -e ".[aws,test]"Run the MCP server:
aws-notebook-runner-mcpRequired AWS Resources
You need:
An S3 bucket/prefix for notebook inputs, outputs, and status files.
An IAM user or role for the local MCP server.
An EC2 instance role/profile for temporary notebook instances.
A default VPC/subnet or explicit subnet id.
SSM access; no inbound SSH is required.
The tested setup used:
AWS region: eu-north-1
S3 root: s3://YOUR_BUCKET/runs
EC2 instance profile: EC2NotebookRunnerRole
Instance type: t3.microIAM: Local MCP User
Attach a managed policy to the IAM principal used by your local AWS profile. Keep it scoped to your account and bucket where possible.
Minimal EC2/SSM/S3 policy shape:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PassNotebookRunnerRole",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::123456789012:role/EC2NotebookRunnerRole"
},
{
"Sid": "EC2NotebookRunnerControl",
"Effect": "Allow",
"Action": [
"ec2:RunInstances",
"ec2:TerminateInstances",
"ec2:CreateTags",
"ec2:DescribeInstances",
"ec2:DescribeInstanceStatus",
"ec2:DescribeImages",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
},
{
"Sid": "SSMNotebookRunnerControl",
"Effect": "Allow",
"Action": [
"ssm:SendCommand",
"ssm:GetCommandInvocation",
"ssm:DescribeInstanceInformation"
],
"Resource": "*"
},
{
"Sid": "NotebookRunnerS3Access",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::YOUR_BUCKET",
"arn:aws:s3:::YOUR_BUCKET/runs/*"
]
},
{
"Sid": "OptionalCloudWatchMetrics",
"Effect": "Allow",
"Action": "cloudwatch:GetMetricStatistics",
"Resource": "*"
}
]
}cloudwatch:GetMetricStatistics is optional. Without it, status still works,
but CPU/network/disk I/O metrics are reported as unavailable.
IAM: EC2 Instance Role
Create an EC2 role, for example EC2NotebookRunnerRole, with:
Trust policy for
ec2.amazonaws.com.AWS managed policy:
AmazonSSMManagedInstanceCore.S3 access to the run prefix.
Example inline S3 policy for the EC2 role:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "NotebookRunnerInstanceS3Access",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::YOUR_BUCKET/runs/ec2/*"
}
]
}When you create the role through the AWS console, AWS usually creates an instance profile with the same name as the role.
Environment
Core settings:
export AWS_PROFILE=research
export AWS_REGION=eu-north-1
export AWS_NOTEBOOK_RUNNER_ROOT=/absolute/path/to/local/notebooks
export AWS_NOTEBOOK_S3_ROOT=s3://YOUR_BUCKET/runs
export AWS_NOTEBOOK_BACKEND=ec2_ssm
export AWS_NOTEBOOK_ROLE_ARN=arn:aws:iam::123456789012:role/EC2NotebookRunnerRole
export AWS_NOTEBOOK_ALLOWED_INSTANCE_TYPES=t3.micro,t3.small
export AWS_NOTEBOOK_DEFAULT_INSTANCE_TYPE=t3.micro
export AWS_NOTEBOOK_MAX_RUNTIME_SECONDS=1800
export AWS_NOTEBOOK_MAX_ESTIMATED_COST_USD=1Paid compute is disabled unless you opt in:
export AWS_NOTEBOOK_RUNNER_ENABLE_EXECUTION=trueThe MCP caller must also pass:
confirmation_token = START_PAID_EC2_NOTEBOOK_RUNSageMaker execution, when quotas are available, uses:
confirmation_token = START_PAID_SAGEMAKER_NOTEBOOK_JOBMCP Client Configuration
Example stdio config:
{
"mcpServers": {
"aws-notebook-runner": {
"command": "aws-notebook-runner-mcp",
"env": {
"AWS_PROFILE": "research",
"AWS_REGION": "eu-north-1",
"AWS_NOTEBOOK_RUNNER_ROOT": "/absolute/path/to/notebooks",
"AWS_NOTEBOOK_S3_ROOT": "s3://YOUR_BUCKET/runs",
"AWS_NOTEBOOK_BACKEND": "ec2_ssm",
"AWS_NOTEBOOK_ROLE_ARN": "arn:aws:iam::123456789012:role/EC2NotebookRunnerRole",
"AWS_NOTEBOOK_ALLOWED_INSTANCE_TYPES": "t3.micro,t3.small",
"AWS_NOTEBOOK_DEFAULT_INSTANCE_TYPE": "t3.micro",
"AWS_NOTEBOOK_MAX_RUNTIME_SECONDS": "1800",
"AWS_NOTEBOOK_MAX_ESTIMATED_COST_USD": "1"
}
}
}
}Only add AWS_NOTEBOOK_RUNNER_ENABLE_EXECUTION=true when you are ready to allow
paid compute, and keep the confirmation token gate.
Tools
get_runner_status: local policy and dependency status.inspect_notebook: validate and summarize a local notebook.estimate_notebook_job_cost: estimate SageMaker or EC2 compute cost.plan_notebook_job: dry-run SageMaker plan.get_sagemaker_notebook_job_spec: return a SageMakerNotebookJobStepspec.start_sagemaker_notebook_job: guarded SageMaker execution.get_sagemaker_job_status: read SageMaker pipeline execution status.check_ec2_setup: read-only EC2/SSM readiness checks.plan_ec2_smoke_run: dry-run EC2+SSM plan.start_ec2_smoke_run: guarded synchronous EC2+SSM run.start_ec2_smoke_run_async: guarded async EC2+SSM run.get_ec2_smoke_run_status: EC2/SSM/S3 progress, metrics, artifacts, and cost.explain_existing_aws_options: related AWS options and overlap.
Typical EC2 Workflow
Inspect the notebook:
inspect_notebook(local_path="notebooks/demo.ipynb")Build a dry-run plan:
plan_ec2_smoke_run(
local_path="notebooks/demo.ipynb",
run_name="demo-run",
instance_type="t3.micro",
max_runtime_seconds=900,
instance_profile_name="EC2NotebookRunnerRole"
)Start async execution:
start_ec2_smoke_run_async(
local_path="notebooks/demo.ipynb",
run_name="demo-run",
confirmation_token="START_PAID_EC2_NOTEBOOK_RUN",
instance_type="t3.micro",
max_runtime_seconds=900,
instance_profile_name="EC2NotebookRunnerRole"
)Poll status:
get_ec2_smoke_run_status(run_name="demo-run")Status includes:
progress_summary.summary, for example:70% executing; elapsed wall 4m 44s, compute 4m 42s, ETA 2m 0sEC2 instance state.
SSM command status.
stdout/stderr tail.
S3 artifacts.
Current compute cost estimate.
Progress Model
Progress is phase-based:
created -> staged -> launching -> waiting_ssm -> installing -> executing -> uploading -> completed/failedThis is useful for UX and cost guardrails, but it is not exact cell-level
progress. A notebook that sleeps for five minutes will remain in executing
until it completes unless the notebook itself writes progress markers.
Cost Model
Cost reporting is an estimate:
EC2 compute is estimated from instance type, elapsed compute time, and a 60-second minimum.
EBS, S3 requests/storage, data transfer, and taxes are not included.
Static prices can be overridden:
export AWS_NOTEBOOK_PRICE_OVERRIDES_JSON='{"t3.micro": 0.0104, "ml.m5.large": 0.115}'Always verify official costs in AWS Billing or Cost Explorer.
SageMaker Notes
SageMaker Notebook Jobs are the more managed AWS-native way to run notebooks, but new AWS accounts may have a default training-job quota of zero for common instance types. In that case, EC2+SSM is a practical fallback.
The SageMaker backend is included, but EC2+SSM is the path that has been tested end-to-end in this package.
Troubleshooting
iam:PassRole denied:
The local AWS principal needs permission to pass the EC2 instance role:
iam:PassRole on arn:aws:iam::<account-id>:role/EC2NotebookRunnerRoleSSM command never starts:
Check that the instance role has
AmazonSSMManagedInstanceCore.Use an Amazon Linux AMI with SSM Agent.
Ensure the subnet has outbound internet access or VPC endpoints for SSM.
CloudWatch metrics unavailable:
Add cloudwatch:GetMetricStatistics to the local AWS principal.
SageMaker fails with quota zero:
Request quota for the selected instance type, or use the EC2+SSM backend.
Inline IAM policy size exceeded:
Use customer managed policies attached to the user/role instead of adding more inline policies.
Safety
This server is intentionally conservative:
Dry-run tools do not start compute.
Execution requires
AWS_NOTEBOOK_RUNNER_ENABLE_EXECUTION=true.Execution also requires a confirmation token.
Instance types are allowlisted.
Max runtime and max estimated cost are policy-controlled.
EC2 instances are launched with instance-initiated shutdown behavior set to terminate.
Review IAM, S3 prefixes, instance allowlists, and cost caps before enabling execution.
Available Tools
13 toolscheck_ec2_setupA
Read-only EC2/SSM setup checks; does not launch instances.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description clearly states read-only behavior and that it does not launch instances, fully disclosing key behavioral traits. It could benefit from additional detail about what 'setup checks' entails, but is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, effectively communicating the tool's purpose and key constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an existing output schema, the description is adequate but minimal. It could provide more context on the output or its role among siblings, but is largely complete for a simple read-only check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters in the schema, and schema description coverage is 100%. With zero parameters, a baseline of 4 is appropriate as the description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'check' and the resource 'EC2/SSM setup', and explicitly states it is read-only and does not launch instances, which distinguishes it from sibling tools like start_ec2_smoke_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for read-only setup checks without launching instances, but does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_notebook_job_costC
Estimate SageMaker notebook job compute cost from static or configured prices.
| Name | Required | Description | Default |
|---|---|---|---|
| instance_type | No | ||
| max_runtime_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose how costs are calculated, what 'static or configured prices' means, whether it calls external APIs, or any assumptions. Behavioral traits are largely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no unnecessary words. It is front-loaded with the core action and resource, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and schema descriptions, the description is insufficiently complete. It omits details about cost calculation method, limitations, or output structure. While output schema exists, the description still fails to convey key behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation for the two parameters (instance_type, max_runtime_seconds). The description fails to add any meaning beyond the raw schema, which is insufficient for an agent to correctly populate these fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('estimate'), the resource ('SageMaker notebook job compute cost'), and the source ('from static or configured prices'). It distinguishes well from sibling tools like plan_notebook_job which are about planning, not cost estimation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context, or exclusions. For a cost estimation tool, explicit usage scenarios are important.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_existing_aws_optionsA
Explain related AWS/AWS Labs tools and how this prototype differs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states it 'explains' but provides no details on the nature of the explanation (e.g., textual output, format, length), no side effects, no authentication needs, and no outcome details. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose without extra words. It is front-loaded and efficient, though a slightly more structured format could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having zero parameters and an output schema (not detailed), the description does not clarify what the tool returns. Given sibling tools are action-oriented, the explanatory nature of this tool's output is critical for the agent to decide if it meets the need. The lack of output description reduces contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (vacuously). The description need not add parameter info since none exist. Baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Explain' and identifies the specific resource: 'related AWS/AWS Labs tools and how this prototype differs.' This distinguishes it from sibling tools that perform actions like 'check,' 'estimate,' or 'start.' The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to gain context about existing tools before using them, but it does not explicitly state when to use it versus alternatives. No guidance on when not to use it or mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ec2_smoke_run_statusC
Return EC2/SSM/S3 progress, CloudWatch metrics, and current cost estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| run_name | Yes | ||
| include_cloudwatch | No | ||
| terminate_if_finished | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It states what is returned but omits that setting 'terminate_if_finished' may cause side effects (termination upon completion). No mention of authentication, error handling, or other behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it omits crucial parameter and behavioral details, making it insufficiently informative despite brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters, no parameter descriptions, and an output schema that is not referenced, the description is incomplete. While it mentions return content, it lacks usage context and parameter guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters. It does not explain 'run_name', 'include_cloudwatch', or 'terminate_if_finished'. The description fails to compensate for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns: EC2/SSM/S3 progress, CloudWatch metrics, and cost estimate. It distinctly defines the specific resource and aspects, differentiating it from sibling tools like get_runner_status or get_sagemaker_job_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No prerequisites or context provided, leaving the agent to infer usage from the name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runner_statusA
Return local policy and dependency status without contacting AWS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses key behavior: does not contact AWS. However, it does not explain what 'local policy and dependency status' entails or potential side effects (likely none). Adequate but could add more detail about what is checked or returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is very concise at one sentence, front-loaded with key action and differentiator. It's efficient but borderline too short; a bit more context on what 'local policy and dependency status' means would improve without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, presence of output schema, and no annotations, the description covers purpose and a key behavioral trait. It is fairly complete for the tool's simplicity, but could elaborate on the types of status returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters and schema coverage is 100% trivially. Baseline for no parameters is 4, and description adds no confusion. No need for parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Return' and clear resource 'local policy and dependency status'. The phrase 'without contacting AWS' distinguishes it from sibling tools like check_ec2_setup that likely contact AWS. Fully informs purpose and differentiates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when you need local status without contacting AWS) but does not explicitly state when not to use or mention alternative sibling tools. Usage guidance is present but minimal and could be improved with comparative advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sagemaker_job_statusC
Read SageMaker pipeline execution status for a started notebook job.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_execution_arn | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Read', implying read-only, but fails to mention error behavior, rate limits, or what status values are returned. The agent has minimal insight into side effects or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short—one sentence—which is concise and front-loaded. However, it may be too minimal, missing key details. Still, it gets straight to the point without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, one required parameter, and an output schema (which could document return values), the description is too sparse. It does not explain what the status represents, how to interpret the output, or common usage patterns. Significant gaps exist for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% (parameter has no description). The tool description does not explain what pipeline_execution_arn is, how to obtain it, or any format constraints. It adds no value beyond the schema's mere listing of the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads SageMaker pipeline execution status for a started notebook job. It uses a specific verb and resource, and the purpose is distinct from sibling tools like get_runner_status or get_sagemaker_notebook_job_spec, though not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_sagemaker_notebook_job_spec or get_runner_status. The description does not mention prerequisites, limitations, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sagemaker_notebook_job_specC
Return the SageMaker NotebookJobStep spec for a dry-run plan.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| job_name | Yes | ||
| image_uri | Yes | ||
| kernel_name | No | python3 | |
| instance_type | No | ||
| max_runtime_seconds | No | ||
| parameters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It says 'Return the spec' implying a read-only operation, but it does not disclose whether the tool has side effects, requires authentication, or triggers any AWS actions. Behavioral traits like idempotency or error states are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but severely underspecified. It lacks any structure such as bullet points or sections that would improve readability. The brevity comes at the expense of necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no schema descriptions, and no annotations, the description is far from complete. It does not explain how to use the parameters, what the output spec includes (despite an output schema existing), or any contextual information about dependencies or limitations. The agent would lack critical details to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 7 parameters with 0% description coverage, and the tool description does not explain any parameters. The description adds no meaning beyond the schema property names, failing to clarify what local_path, job_name, image_uri, or other parameters represent or how they are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a SageMaker NotebookJobStep spec for a dry-run plan. The verb 'Return' is specific and the resource is named, distinguishing it from sibling tools like plan_notebook_job or start_sagemaker_notebook_job. However, it could be more precise about what 'dry-run plan' means in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as plan_notebook_job or estimate_notebook_job_cost. There is no mention of prerequisites, exclusions, or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_notebookC
Inspect a local notebook under AWS_NOTEBOOK_RUNNER_ROOT.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as read-only nature, required permissions, or side effects. The term 'Inspect' is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action. However, it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema is present, the description lacks sufficient detail to compensate for low parameter coverage and no annotations, leaving the agent with incomplete guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single parameter 'local_path'. The description adds no meaning beyond the schema, such as format, example, or constraints like absolute vs relative path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Inspect' and the resource 'local notebook' with a specific path constraint 'under AWS_NOTEBOOK_RUNNER_ROOT'. However, it does not differentiate this tool from sibling tools like 'get_sagemaker_notebook_job_spec' or 'plan_notebook_job'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_ec2_smoke_runA
Build a dry-run EC2+SSM notebook smoke-run plan; does not launch EC2.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| run_name | Yes | ||
| instance_type | No | ||
| max_runtime_seconds | No | ||
| ami_id | No | ||
| subnet_id | No | ||
| security_group_id | No | ||
| instance_profile_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description clarifies it does not launch EC2 but omits other behavioral traits like state changes or plan format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is efficient and contains key distinction, but could add more value without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no schema descriptions, and no annotations, the description is too brief to be fully informative; output schema exists but is unmentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage and description adds no parameter details, failing to compensate for lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it builds a dry-run plan and explicitly says it does not launch EC2, distinguishing it from execution tools like start_ec2_smoke_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates usage for planning by contrasting with launching. Lacks explicit when-to-use vs siblings but context from sibling names helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_notebook_jobC
Build a dry-run SageMaker notebook job plan; does not start AWS compute.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| job_name | Yes | ||
| image_uri | Yes | ||
| kernel_name | No | python3 | |
| instance_type | No | ||
| max_runtime_seconds | No | ||
| parameters | No | ||
| cleanup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description bears full burden. It states 'does not start AWS compute', which is important for a safe dry-run. However, it omits other behaviors like validation, plan format, or permission checks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with key points. Very concise, though could include a bit more context without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema, the description does not explain what the plan contains or how to use it. For a planning tool with 8 parameters, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no information about parameters beyond their names and types. For an 8-parameter tool, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (build) and resource (SageMaker notebook job plan), and highlights key characteristic (dry-run, does not start compute). However, it does not explicitly differentiate from sibling tools like start_sagemaker_notebook_job or explain_existing_aws_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It doesn't mention that it's for validation/planning before actual execution, nor when to avoid it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_ec2_smoke_runC
Start a guarded paid EC2+SSM smoke run and terminate the instance after completion.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| run_name | Yes | ||
| confirmation_token | Yes | ||
| instance_type | No | ||
| max_runtime_seconds | No | ||
| ami_id | No | ||
| subnet_id | No | ||
| security_group_id | No | ||
| instance_profile_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions starting and terminating the instance, implying a destructive lifecycle and paid nature, but fails to disclose other behavioral traits such as blocking behavior, AWS credential requirements, cost implications, or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, it is under-specified for the tool's complexity; conciseness is not a virtue when critical details are omitted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters with no descriptions, no annotations, and an output schema not detailed, the description is severely incomplete. It does not define 'smoke run', explain required confirmation_token, or indicate return values, leaving agents with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the tool description does not explain any of the 9 parameters (e.g., local_path, run_name, confirmation_token). The description adds no value beyond the schema names, leaving agents uninformed about parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'start' and the resource 'EC2+SSM smoke run', and adds the important behavior of terminating after completion. However, it does not explicitly distinguish from the sibling 'start_ec2_smoke_run_async' or clarify synchronous vs async nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'plan_ec2_smoke_run' or 'start_ec2_smoke_run_async'. No prerequisites, contexts, or when-not-to-use information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_ec2_smoke_run_asyncC
Start a guarded paid EC2+SSM smoke run and return immediately with run ids.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| run_name | Yes | ||
| confirmation_token | Yes | ||
| instance_type | No | ||
| max_runtime_seconds | No | ||
| ami_id | No | ||
| subnet_id | No | ||
| security_group_id | No | ||
| instance_profile_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully cover behavioral traits. It mentions 'guarded paid' and async return but omits details on destructive potential, cost implications, authentication needs, or how to handle the run IDs. This leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it sacrifices completeness. Front-loading is good, but the lack of essential detail makes it barely adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given high complexity (9 parameters, 0% schema coverage, no annotations), the description is far too brief. It fails to explain the purpose of the confirmation token, how to retrieve status, or what 'guarded' entails. The output schema exists but is not leveraged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no explanation for any of the 9 parameters. Required parameters like 'confirmation_token' are not justified. The description provides zero semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it starts a 'guarded paid EC2+SSM smoke run' and returns immediately with run IDs. The verb 'start' and resource 'EC2+SSM smoke run' are specific, and the async behavior distinguishes it from the synchronous sibling start_ec2_smoke_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies async usage by noting 'return immediately', but does not explicitly state when to choose this over the synchronous alternative or other planning tools. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_sagemaker_notebook_jobC
Start paid SageMaker notebook execution only when policy and token allow it.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| job_name | Yes | ||
| image_uri | Yes | ||
| confirmation_token | Yes | ||
| kernel_name | No | python3 | |
| instance_type | No | ||
| max_runtime_seconds | No | ||
| parameters | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at authorization requirements but omits critical details such as cost implications, error behavior, or whether the action is destructive. The mention of 'paid' suggests cost but is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is under-informative for a tool with 8 parameters. It could include more detail without becoming verbose, e.g., mentioning the need for prior planning or cost estimation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, 4 required, no schema descriptions, and an output schema) and the presence of related siblings, the description is incomplete. It does not explain return values, prerequisites, or how parameters like parameters or instance_type affect execution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate by explaining parameters. However, it only mentions 'policy and token' (referencing confirmation_token) without describing any of the 8 parameters, including required ones like local_path and image_uri. The description adds no value beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Start' and the resource 'paid SageMaker notebook execution', indicating the tool's primary action. However, it does not explicitly differentiate from sibling tools like plan_notebook_job or start_ec2_smoke_run, and the term 'paid' adds ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a precondition ('only when policy and token allow it') but does not provide explicit guidance on when to use this tool versus alternatives such as plan_notebook_job or estimate_notebook_job_cost. No when-not or alternative tool references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action (plan, start, check status, inspect, estimate) for separate AWS execution paths (EC2+SSM vs SageMaker), with clear descriptions that prevent confusion even between start_ec2_smoke_run and start_ec2_smoke_run_async.
All tool names follow a verb_noun pattern in snake_case consistently, using action verbs like check, estimate, explain, get, inspect, plan, start. No mixed conventions.
13 tools cover the full workflow for two execution modes without bloat. Each tool serves a clear purpose in the lifecycle (plan, start, status, cost, setup, inspection).
The tool set covers setup checks, planning, starting (sync and async for EC2), status retrieval, cost estimation, and notebook inspection. Missing a cancel/abort tool for running jobs, but the guarded design mitigates this gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Lowers your AWS bill by helping you clean up and optimize your setup
Read-only AWS cost analysis: find idle and underutilized resources, with evidence.
Create AWS cost estimates and shareable AWS Pricing Calculator URLs.
AWS Cost Explorer cost, forecast, and anomaly reporting through user-connected IAM credentials.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to AWS infrastructure through AWS IAM Identity Center for secure, natural language management of cloud resources across multiple accounts. It enables users to execute AWS CLI commands, monitor resources, and run remote shell commands on EC2 instances via Systems Manager.48815ISC
- AlicenseNot gradedqualityCmaintenanceEnables natural language analysis of AWS costs, automated FinOps waste audits, and budget monitoring across multiple profiles and regions while keeping credentials secure locally.182MIT
- AlicenseNot gradedqualityDmaintenanceEnables creating AWS cost estimates through natural language, generating shareable calculator.aws links, and retrieving actual calculated costs via headless Chrome, without requiring AWS credentials.537MIT
- FlicenseNot gradedqualityCmaintenanceEnables LLMs to create, destroy, and manage AWS EC2 instances, including running commands via interactive shells.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/YummyTastyCode/aws-notebook-runner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server