Skip to main content
Glama
YummyTastyCode

AWS Notebook Runner MCP

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 .ipynb under 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-mcp

Required 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.micro

IAM: 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=1

Paid compute is disabled unless you opt in:

export AWS_NOTEBOOK_RUNNER_ENABLE_EXECUTION=true

The MCP caller must also pass:

confirmation_token = START_PAID_EC2_NOTEBOOK_RUN

SageMaker execution, when quotas are available, uses:

confirmation_token = START_PAID_SAGEMAKER_NOTEBOOK_JOB

MCP 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 SageMaker NotebookJobStep spec.

  • 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

  1. Inspect the notebook:

inspect_notebook(local_path="notebooks/demo.ipynb")
  1. 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"
)
  1. 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"
)
  1. 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 0s

  • EC2 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/failed

This 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/EC2NotebookRunnerRole

SSM 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 tools
check_ec2_setupA

Read-only EC2/SSM setup checks; does not launch instances.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_typeNo
max_runtime_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_nameYes
include_cloudwatchNo
terminate_if_finishedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pipeline_execution_arnYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
job_nameYes
image_uriYes
kernel_nameNopython3
instance_typeNo
max_runtime_secondsNo
parametersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
run_nameYes
instance_typeNo
max_runtime_secondsNo
ami_idNo
subnet_idNo
security_group_idNo
instance_profile_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
job_nameYes
image_uriYes
kernel_nameNopython3
instance_typeNo
max_runtime_secondsNo
parametersNo
cleanupNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
run_nameYes
confirmation_tokenYes
instance_typeNo
max_runtime_secondsNo
ami_idNo
subnet_idNo
security_group_idNo
instance_profile_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
run_nameYes
confirmation_tokenYes
instance_typeNo
max_runtime_secondsNo
ami_idNo
subnet_idNo
security_group_idNo
instance_profile_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
job_nameYes
image_uriYes
confirmation_tokenYes
kernel_nameNopython3
instance_typeNo
max_runtime_secondsNo
parametersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

B3.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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).

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects 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.
    488
    15
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language analysis of AWS costs, automated FinOps waste audits, and budget monitoring across multiple profiles and regions while keeping credentials secure locally.
    182
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables creating AWS cost estimates through natural language, generating shareable calculator.aws links, and retrieving actual calculated costs via headless Chrome, without requiring AWS credentials.
    53
    7
    MIT

Latest Blog Posts

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