Skip to main content
Glama
EasyDeploy-AI

easydeploy-ai-mcp

Official

EasyDeploy AI MCP (easydeploy-ai-mcp)

A Model Context Protocol (MCP) server that exposes the EasyDeploy public REST API as tools for Claude, Cursor, Claude Code, and other MCP clients.

PyPI package name: easydeploy-ai-mcp · Import package: easydeploy_ai_mcp

Contents

Related MCP server: my-mcp-server

Connect with Claude

Hosted connector (claude.ai or Claude Desktop)

We host the MCP endpoint. You add it once inside Claude; after you connect and sign in, new chats can use EasyDeploy like any other enabled connector.

  1. Open Claude in the browser or open Claude Desktop.

  2. Open Settings, then Connectors, and choose Add custom connector.

  3. Enter exactly:

    • Name: EasyDeploy AI

    • Remote MCP server URL: https://mcp.easydeploy.ai/mcp

  4. Save the connector so EasyDeploy appears in your list of connectors.

  5. Open the EasyDeploy connector entry and choose Connect, then finish sign-in in your browser. That step authorizes Claude to use your EasyDeploy account.

Connect and sign in (inside Claude): After the custom connector is set up, Claude shows an EasyDeploy card with the MCP URL and a Connect button. Use that flow to sign in. You do not paste an API key into Claude. Access stays tied to the EasyDeploy profile you authenticate in the browser.

Claude Desktop and file uploads: File uploads and some tool calls reach EasyDeploy over the network. On Desktop, Claude blocks outbound traffic unless you allow the domains it should call. Open Settings → Capabilities, turn on Allow network egress, and under the domain allowlist add this entry exactly (including the leading *.):

*.execute-api.us-east-1.amazonaws.com

The domain allowlist UI is available on paid Claude plans.

More detail and variants (for example a URL from your own deployment) are in docs/claude-getting-started.md.


Local MCP on your computer (stdio)

Run the MCP server on your own machine using your EasyDeploy API key. Nothing is exposed to the internet.

1. Install

pip install easydeploy-ai-mcp

2. Add to Claude Desktop config

Edit (or create) the Claude Desktop config file:

OS

Path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Merge the following into the root of that JSON (keep any existing keys):

{
  "mcpServers": {
    "EasyDeploy AI": {
      "command": "easydeploy-ai-mcp-stdio",
      "env": {
        "EDA_API_KEY": "eda_live_YOUR_KEY"
      }
    }
  }
}

Replace eda_live_YOUR_KEY with your key from Account → API Keys in the EasyDeploy dashboard. Use the full path to easydeploy-ai-mcp-stdio (run which easydeploy-ai-mcp-stdio to find it) if Claude cannot locate it on your PATH.

3. Restart Claude Desktop

Fully quit and reopen the app. EasyDeploy AI will appear in your MCP servers.


For self-hosting on Docker or a cloud provider, see Remote MCP (HTTP).

What you get

  • 24 tools covering projects, datasets (including upload flow), model versions, training jobs, predictions, and account status.

  • stdio transport for local clients, or HTTP with Streamable MCP on /mcp and GET /healthz for load balancers.

  • Hardening: HTTPS-only calls to the EasyDeploy API; optional MCP_SERVICE_TOKEN for the HTTP MCP surface; response fields trimmed where appropriate for agents.

For production and SOC 2–sensitive setups, prefer self-hosting so your data stays within your own infrastructure. The hosted connector at https://mcp.easydeploy.ai/mcp is fine for most users.

Requirements

  • Python 3.10+

  • An EasyDeploy API key from the dashboard (Account → API Keys). The client uses the production EasyDeploy API host by default.

Install

From PyPI (after first release)

pip install easydeploy-ai-mcp

From source

git clone https://github.com/easydeploy-ai/easydeploy-ai-mcp.git
cd easydeploy-ai-mcp
pip install -e ".[dev]"   # includes pytest
# or minimal runtime only:
pip install .

Environment variables

Variable

Required

Description

EDA_API_KEY

stdio / legacy HTTP

Required for stdio and legacy HTTP (no OAuth). Not used for outbound API calls when EDA_OAUTH_ENABLED=1 — each MCP request must include Authorization: Bearer <JWT or eda_live_…>.

EDA_API_BASE

No

Overrides the default production API (https://api.easydeploy.ai). Set only when targeting a non-production endpoint. Trailing /v1 is optional.

EDA_UI_BASE_URL

No

Prefix for ui_url fields (default https://easydeploy.ai).

MCP_SERVICE_TOKEN

No

Legacy single-tenant gate. If set, HTTP mode requires Authorization: Bearer <token> for /mcp (not for GET /healthz). Mutually exclusive with EDA_OAUTH_ENABLED.

EDA_OAUTH_ENABLED

No

Set to 1 to run the HTTP transport as an OAuth 2.0 resource server. Requires EDA_COGNITO_USER_POOL_ID and EDA_COGNITO_CLIENT_ID. See Remote MCP (HTTP).

EDA_COGNITO_USER_POOL_ID

OAuth

Cognito user pool that issues access tokens for the EasyDeploy API.

EDA_COGNITO_CLIENT_ID

OAuth

App client ID expected in the access token's client_id claim.

EDA_COGNITO_REGION

No

AWS region for the user pool (default us-east-1).

EDA_REPORT_MAX_WAIT_SECONDS

No

get_model_report poll budget (default 300).

EDA_REPORT_POLL_INTERVAL_SECONDS

No

Poll interval in seconds (default 10).

HOST / PORT

No

HTTP bind (defaults 0.0.0.0 / 8080).

EDA_TRUST_FORWARDED_HEADERS

No

Set to 1 behind ALB/reverse proxy so RFC 9728 resource uses https (trusts X-Forwarded-Proto).

EDA_MCP_OAUTH_ISSUER

No

Public MCP base URL (no path) for authorization_servers and proxy /.well-known/oauth-authorization-server issuer. Default: request origin. Use if Host / X-Forwarded-Proto are wrong behind a proxy.

Local MCP (stdio)

Use when the client starts the server as a subprocess (Claude Desktop, Cursor, etc.).

export EDA_API_KEY="eda_live_..."
easydeploy-ai-mcp-stdio

Or: python -m easydeploy_ai_mcp

Example config snippet:

{
  "mcpServers": {
    "easydeploy-ai": {
      "command": "easydeploy-ai-mcp-stdio",
      "env": {
        "EDA_API_KEY": "eda_live_..."
      }
    }
  }
}

Remote MCP (HTTP)

Serves Streamable HTTP via FastMCP on /mcp (confirm with your pinned FastMCP 3.x version). Health checks: GET /healthz.

export EDA_API_KEY="eda_live_..."
easydeploy-ai-mcp-http

Or: uvicorn easydeploy_ai_mcp.http_main:app --host 0.0.0.0 --port 8080

If you embed mcp.http_app() in another ASGI app, pass through lifespan from the FastMCP HTTP app (FastMCP ASGI); easydeploy_ai_mcp.http_main already does this for uvicorn.

Auth modes

Pick exactly one (setting both EDA_OAUTH_ENABLED and MCP_SERVICE_TOKEN raises at import):

  • OAuth 2.0 resource server (multi-tenant): set EDA_OAUTH_ENABLED=1 plus EDA_COGNITO_USER_POOL_ID and EDA_COGNITO_CLIENT_ID. Install the optional extra: pip install easydeploy-ai-mcp[oauth]. The server validates incoming Cognito access JWTs locally against the Cognito JWKS (issuer, signature, exp, token_use=='access', client_id) and forwards the token to the EasyDeploy API. EasyDeploy API keys (prefix eda_live_) are accepted in the same Authorization: Bearer header and forwarded as-is — the API is the source of truth for revocation. RFC 9728 metadata is published at /.well-known/oauth-protected-resource; RFC 8414 proxy metadata includes registration_endpoint, and POST /oauth/register returns the static Cognito MCP EDA_COGNITO_CLIENT_ID (RFC 7591-style, public client). 401 responses include WWW-Authenticate: Bearer … so MCP clients can discover the auth server. Note: Cognito access tokens carry client_id, not aud; do not configure an audience.

  • Shared-secret gate (legacy single-tenant): set MCP_SERVICE_TOKEN. All outbound API calls use the static EDA_API_KEY.

  • No auth: development only.

Docker — run locally (same image you deploy to ECS/Fargate; includes easydeploy-ai-mcp[oauth]):

# Convenience: build + run (reads .env in the repo root if present)
./scripts/run_mcp_docker_local.sh

# Explicit env vars (no .env)
./scripts/run_mcp_docker_local.sh -e EDA_API_KEY="eda_live_..."

# Different host port
PORT=9000 ./scripts/run_mcp_docker_local.sh

Host on AWS (Fargate + ALB): build and push this repo’s Dockerfile to a container registry, then deploy behind an HTTPS load balancer. Set the env vars listed above on the task/container.

Manual equivalent:

docker build -t easydeploy-ai-mcp .
docker run --rm -p 8080:8080 \
  -e EDA_API_KEY="eda_live_..." \
  easydeploy-ai-mcp

Documentation

REST API reference

This MCP server is a thin client over the EasyDeploy public REST API. Endpoint behavior, request bodies, and response shapes are defined by EasyDeploy (dashboard, product help, and official API materials at easydeploy.ai). This repo does not duplicate the full OpenAPI spec; it maps those operations to MCP tools.

Releases and API compatibility

This repository is the open-source home of the EasyDeploy MCP server. New releases track the EasyDeploy public REST API as documented for customers (dashboard and official API materials). If the API adds or changes endpoints, expect corresponding updates here. Contributors should follow CONTRIBUTING.md when changing tools or client behavior.

Development

pip install -e ".[dev]"
pytest

Optional — real Cognito JWT against the HTTP app (live JWKS, no mocks): set EDA_INTEGRATION_COGNITO_ACCESS_TOKEN plus the same EDA_COGNITO_* vars you use for OAuth mode, then run pytest tests/test_cognito_jwt_integration.py -v. See the docstring in that file.

See CONTRIBUTING.md for pull requests and reporting issues.

Security

See SECURITY.md for vulnerability reporting and deployment notes.

License

MIT — see LICENSE.

Available Tools

24 tools
complete_uploadA

Finalize an upload after start_upload + curl. upload_request_id: opaque id returned by start_upload. dataset_id: optional target dataset id for creating a new version. If the dataset already exists, a new version is created automatically. dataset_type: train | test | validation (default train).

The gateway PUT from start_upload must return HTTP 2xx before you call this tool; otherwise the API responds with 400 (upload session not UPLOADED yet).

Returns the dataset record with id, name, and the new datasetVersion.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
nameYes
upload_request_idYes
descriptionNo
dataset_typeNotrain
dataset_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the required state (upload session UPLOADED), the 400 error if precondition fails, and the return format. It does not mention side effects like version creation explicitly, but that is implied.

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 concise, using about 5 sentences with front-loaded purpose. It could be better structured (e.g., list parameters), but overall efficient.

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?

It covers preconditions, typical usage, and return format. However, it could clarify behavior when dataset_id is not provided (e.g., whether a new dataset is created). Given an output schema exists, completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, requiring the description to compensate. It explains upload_request_id, dataset_id, and dataset_type, but omits descriptions for project_id, name, and description. This leaves gaps in understanding for required parameters.

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 finalizes an upload after start_upload and a curl PUT. It specifies the required parameters and the return value, distinguishing it from sibling tools like start_upload and create_dataset_version.

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?

It explicitly states when to call this tool: after start_upload and the gateway PUT must return HTTP 2xx. It provides a precondition (else 400 error) but does not compare with alternatives or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_dataset_versionA

Create or update a dataset version.

Create (register an S3 file as a new version — used by the QA pipeline): Required: version_type (raw | qa_cleaned | training), file_url (s3:// URL), qa_metadata (freeform JSON with QA results).

Update (change qa_status on an existing version): Required: version_id, qa_status (pending | in_progress | ready | blocked).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
dataset_idYes
version_typeNo
file_urlNo
qa_metadataNo
version_idNo
qa_statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/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 bear the full burden of behavioral transparency. It discloses the core behavior (create or update) but lacks detail on side effects (e.g., whether update is upsert, what happens if version_id doesn't exist), authentication requirements, rate limits, or error conditions. This is a significant gap for a mutation tool.

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 highly concise and well-structured, with clear headers for Create and Update sections and bullet-pointed required parameters. Every sentence adds value, and the information is front-loaded with the dual-purpose statement. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the two operational modes and parameter usage but lacks context on return values (despite an output schema existing), error handling, idempotency, and required permissions. Given the tool's complexity (7 parameters, no annotations), the description is useful but not fully complete.

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?

With schema description coverage at 0%, the description adds essential meaning by mapping parameters to their roles in create and update operations. It specifies valid values for version_type (raw, qa_cleaned, training) and qa_status (pending, in_progress, ready, blocked), and explains qa_metadata as freeform JSON. This compensates well for the bare schema, though project_id and dataset_id are not elaborated.

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 creates or updates a dataset version, with specific sub-operations for each case. It distinguishes between create (registering an S3 file) and update (changing qa_status), providing a specific verb and resource. This clarity differentiates it from sibling tools which are primarily read or list operations.

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 provides detailed usage guidelines for the two internal modes (create vs update) by listing required parameters for each. However, it does not guide when to use this tool versus sibling tools like get_dataset_version or list_dataset_versions, leaving the agent to infer the appropriate alternative based on operation type.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_modelA

Create or update a model.

  • Create: call with project_id and name (and optional description).

  • Update/rename: also pass model_id plus the fields to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
nameYes
descriptionNo
model_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.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 carry the burden of behavioral disclosure. It only states the basic create/update functionality without explaining side effects, error conditions, or whether the operation is idempotent. Key behaviors like handling duplicate names or missing model_id are omitted.

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 two concise sentences with a bullet list. Every word serves a purpose, no redundancy. It is front-loaded with the core action and provides structured usage patterns.

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?

The output schema exists, so the description does not need to cover return values. For a dual-mode tool with 4 parameters, the description adequately explains parameter roles. It lacks edge cases (e.g., what if model_id is invalid) but is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, so the description must add meaning. It does clarify that project_id and name are for creation, and model_id is for update. However, it does not explain constraints (e.g., name format) or whether description is ignored on update. The connection is partial.

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 can create or update a model, specifying the exact resource and actions. It distinguishes between two use cases (create vs update), which is specific and unambiguous. Among sibling tools like create_model_version, this tool is uniquely identified as operating on models.

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?

The description explicitly provides when to use the tool: create with project_id and name, update with model_id plus fields. It gives clear context for each mode. However, it does not explicitly mention when not to use this tool or provide alternatives, though the sibling list implies other tools for different operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_model_versionB

Create a model version tied to a dataset version and target column. Then call submit_training_job with the returned model version id.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
model_idYes
dataset_version_idYes
target_featureYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 only states the action and suggests next step, but does not disclose behavioral traits like idempotency, permissions, or 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?

Two sentences that are front-loaded with the purpose and a workflow hint. No unnecessary words, though could potentially be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for the basic action, but lacks depth on parameter details despite having an output schema. Given the tool's simplicity, it covers the essential context but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for dataset_version_id and target_feature, but project_id and model_id are not explained. With 0% schema coverage, this partial compensation is only moderate.

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 'Create' and the resource 'model version', and specifies it is tied to a dataset version and target column. It also distinguishes by suggesting a follow-up action with submit_training_job.

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 by saying to call submit_training_job after, but does not provide when to use this tool versus alternatives like create_model or get_model_version.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectA

Create or update a project.

  • Create: call with name (and optional description).

  • Update/rename: pass project_id of an existing project plus the fields to change (name and/or description).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
descriptionNo
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavioral traits. It explains that providing project_id triggers an update, but omits information about permissions, side effects, or idempotency. The output schema exists but is not referenced.

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 concise with a clear two-bullet structure, front-loading the main purpose and providing details efficiently. No redundant information.

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?

For a tool with 3 parameters and an output schema, the description covers core use cases (create and update) adequately, but lacks error conditions or interaction notes with sibling tools, which would enhance 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?

With 0% schema description coverage, the description compensates by explaining the roles of name (required for create), project_id (for update), and description (optional), adding meaning beyond the bare 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 'Create or update a project' and provides separate sub-bullets for each mode, distinguishing it from sibling tools like get_project and list_projects.

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?

The description gives explicit guidance for create (use name) and update (use project_id plus fields to change), but does not explicitly mention when not to use this tool or suggest alternatives beyond the implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_account_statusA

Get current account status: tier, training credits, prediction usage, endpoint limits. customer_id is optional; the backend resolves the account from the API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavior. It specifies what the tool returns (account status) and explains the optional parameter's behavior. It implies a read-only operation, which is appropriate. Could mention if any side effects exist, but for a status check, it's 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 consists of two sentences with no redundant information. It is front-loaded with the main purpose and efficiently covers the parameter behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (though not shown), so return values need not be elaborated. The description covers the main purpose and the optional parameter. For a simple status-check tool with one parameter, it provides complete guidance.

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 single parameter 'customer_id' has no description in the schema (0% coverage). The tool's description compensates by stating it is optional and that the backend resolves the account from the API key, adding meaningful context beyond the schema's bare type definition.

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 retrieves current account status and lists specific components (tier, training credits, prediction usage, endpoint limits). This distinguishes it from all sibling tools, which focus on datasets, models, predictions, etc.

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 explains that customer_id is optional and that the backend resolves from the API key, which is helpful. However, it does not provide explicit guidance on when to use this tool versus alternatives or any conditions to avoid using it. Given the tool's standalone nature, this is adequate but not exemplary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_datasetA

Fetch or update a dataset.

  • Read: call with project_id and dataset_id only.

  • Update/rename: also pass name and/or description to change.

Datasets are created via complete_upload (the upload flow); use this tool for reads and metadata edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
dataset_idYes
nameNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool can both read and update (modify) a dataset, which is key behavioral info. Does not cover rate limits, authorization, or idempotency, but it adds context beyond the schema.

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 very concise, using bullet points for clarity. Every sentence is purposeful: first line states dual purpose, then bullets for read vs update, then note on creation. No wasted words.

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 the 4 parameters and existence of output schema, the description covers the main usage scenarios. It mentions the creation alternative. Minor gap: does not mention that updating requires an existing dataset or validation, but overall sufficient.

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?

Schema description coverage is 0%, so the description must compensate. It explains that project_id and dataset_id are for identification, and name and description are used only for update/rename. This adds essential meaning beyond the schema's property definitions.

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 can both fetch and update a dataset, with specific verbs and resources. It distinguishes from sibling 'complete_upload' by noting that datasets are created there.

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?

The description provides clear context on when to use the tool: for reads with only project_id and dataset_id, and for updates with optional name/description. It explicitly says datasets are created via complete_upload, so not for creation. Lacks mention of listing alternatives but adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dataset_versionB

Fetch one dataset version by id (metadata, qa_status, version_type).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
dataset_idYes
version_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. Only states it fetches data, but doesn't disclose read-only nature, permissions, or any constraints beyond the input.

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, 13 words, no filler. Efficient but could be slightly more structured to separate the core action from the returned fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are covered. However, with many sibling tools and no usage guidelines, the description is minimally complete for a simple fetch operation.

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 coverage is 0%, and description adds no parameter-specific details beyond 'by id'. The parameter names are self-explanatory, but description could clarify relationships between project_id, dataset_id, and version_id.

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 the action (Fetch), specific resource (one dataset version), and parameters (by id, including metadata, qa_status, version_type). Distinguishes from list_dataset_versions and other get tools.

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 vs alternatives like list_dataset_versions or get_dataset. Does not mention prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_modelC

Fetch a single model by id (name, description, version count).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
model_idYes

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 must disclose behavioral traits. It only hints at the return schema (name, description, version count) but fails to mention authentication, error handling, or id format requirements.

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 single sentence is concise and front-loads the action and return fields. However, it could be slightly restructured to separate action from returned data more clearly.

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 two required parameters and the large set of sibling tools, the description is incomplete. It lacks explanation of the project_id parameter and does not offer usage context within the workflow.

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?

With 0% schema description coverage, the description must compensate. It mentions 'by id' but does not explain the project_id parameter or provide any parameter semantics beyond the schema's property names.

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 fetches a single model by id and lists the returned fields (name, description, version count). This distinguishes it from siblings like get_model_version or list_models.

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 vs alternatives like list_models or get_model_version. The description does not mention when not to use it or provide context for the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_model_reportA

Load the EDA training report (metrics, feature analysis, performance summary).

project_id is optional — the backend resolves it from model_id when omitted.

Omit model_version_id to use the latest version for this model. Pass an id from list_model_versions to read a specific version.

Default response is summary only (token-efficient). Set full_report=true for full detail.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes
project_idNo
model_version_idNo
full_reportNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses default summary response (token-efficient) and full_report behavior. Lacks explicit statement about read-only nature or any side effects, but no contradictions. Adequate given absence of annotations.

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?

Four well-structured sentences with key information front-loaded. No redundancy, uses code formatting for optional params. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all essential behaviors: parameter defaults, optionality, and response toggling. Output schema handles return structure, so description's coverage is sufficient for proper invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are explained beyond the schema: model_id is required, project_id resolved from model_id, model_version_id defaults to latest, full_report defaults to false. This compensates for the 0% schema coverage.

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?

Clearly states it loads the EDA training report with metrics, feature analysis, and performance summary. Distinguishes from siblings like get_model and get_model_version by specifying the specialized report content.

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?

Provides clear guidance on optional parameters: project_id can be omitted (resolved from model_id), model_version_id defaults to latest, full_report toggles detail level. However, no explicit when-not-to-use or comparison with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_model_versionA

Fetch a single model version by id (status, edaReportStatus, target, timestamps). Prefer this over list_model_versions when you already know the version_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
model_idYes
version_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses the returned fields and that the operation is a fetch (non-destructive). While it doesn't mention error cases or performance traits, the simplicity of a read operation makes this adequate.

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?

Two sentences with no fluff. The first sentence defines the action and output, the second gives usage guidance. Every word earns its place.

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 the presence of an output schema (which likely details return fields), the description covers what the tool returns and when to use it. It does not explain why project_id and model_id are needed, but the parameter names are self-explanatory in context. Overall adequate for a straightforward fetch tool.

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?

The description only mentions 'by id' hinting at version_id, but does not explain project_id and model_id, which are required. With 0% schema description coverage, the description fails to add meaning to the other two parameters beyond their names.

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 action (Fetch) and the resource (a single model version by id), and lists specific fields returned (status, edaReportStatus, target, timestamps). It explicitly differentiates from the sibling tool list_model_versions by stating when to prefer this tool over the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: 'when you already know the version_id', and implies the alternative (list_model_versions) should be used otherwise. This provides clear decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_predictionB

Fetch prediction status and result by prediction id.

  • Ad-hoc completed: output contains the label/probability.

  • Batch completed: download_url and curl_command are included automatically (tokenized gateway proxy, safe from remote sandbox).

ParametersJSON Schema
NameRequiredDescriptionDefault
prediction_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses behavior for two completion scenarios (ad-hoc and batch) with specific returned fields, including that curl_command is tokenized for safety. However, does not cover pending or failed states.

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?

Concise, with front-loaded purpose and bullet points for scenarios. Minor room for improvement in structuring edge cases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately covers main completion states but lacks description for pending, failed, or invalid prediction_id. Output schema exists, reducing need to describe return values.

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 only parameter, prediction_id, has no description in the schema (0% coverage) and the description adds no semantics beyond 'by prediction id', missing format, constraints, or examples.

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 'Fetch prediction status and result by prediction id.' with a specific verb and resource, distinguishing it from siblings like run_prediction or list_predictions.

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 explicit guidance on when to use this tool versus alternatives. It does not mention criteria for choosing get_prediction over run_prediction, list_predictions, or other related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectA

Fetch a single project by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description is the sole source for behavioral disclosure. It accurately describes a read-only operation ('fetch') with no side effects. However, it could explicitly state that it requires an existing project ID and returns the project object.

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, well-structured sentence that efficiently communicates the tool's purpose without any redundant words. It earns its place as a minimal but complete definition.

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 the tool's simplicity (one parameter, output schema exists), the description is mostly sufficient. It could mention that it returns a project object, but the presence of an output schema partially compensates. Still, a slightly richer description would improve completeness.

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 does not elaborate on the 'project_id' parameter beyond stating it is used by id. While the parameter name is self-explanatory, the description fails to add any 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 the action (fetch) and the resource (project) with the identifying criterion (by id). It distinguishes itself from sibling tools like list_projects, which returns multiple projects.

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. It does not mention prerequisites or situations where this tool is appropriate, leaving the agent to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_training_statusA

Check a training job by job_id (the jobId field from submit_training_job).

If this tool does not appear in your MCP tool list: restart the host and ensure the client runs current easydeploy_ai_mcp (standard catalog is 24 tools). Until then, poll list_model_versions for the model version status instead.

Response fields:

  • status: PENDING | RUNNING | COMPLETE | FAILED

  • trainingTimeSeconds: wall-clock seconds once the job stops; null while running

  • modelVersionId: the model version being trained

By default returns the current status immediately.

Set wait=true to block until the job reaches a terminal state (COMPLETE or FAILED). Polls every poll_interval_seconds (default 10 s) for up to timeout_seconds (default 180 s / 3 min). Typical training runs finish in 2-3 minutes. If the timeout expires, the last polled status is returned with timed_out: true.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
waitNo
timeout_secondsNo
poll_interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: default immediate return, wait mode with polling intervals and timeouts, response fields including status, trainingTimeSeconds, modelVersionId, and timed_out flag. No contradictions.

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 structured with clear sections, front-loading the primary purpose and then detailing parameters and response fields. Every sentence adds value, no wasted words. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown), the description still explicitly lists response fields and their meanings. It covers default behavior, wait option, timeout handling, and references sibling tools (submit_training_job, list_model_versions). The tool is fully documented for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains each parameter's purpose (job_id is required, wait enables blocking, timeout_seconds sets max wait, poll_interval_seconds sets poll frequency) with defaults and behavior, fully compensating for the 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?

The description clearly states the tool checks a training job by job_id, with specific verb+resource. It distinguishes itself by explaining that if the tool is unavailable, list_model_versions should be used instead, which effectively differentiates from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use the optional wait parameter, details polling behavior, timeouts, and defaults. It also provides a fallback method (polling list_model_versions) in case the tool is not available, giving clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_datasetsB

List datasets in a project (id, name, type, timestamps).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden. It reveals the return fields but does not disclose read-only nature, authentication requirements, pagination, or ordering behavior.

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?

Single sentence efficiently communicates purpose and return fields. No redundant information, earns its place.

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?

For a simple list with one required parameter and an existing output schema, the description adequately covers the essentials. Missing behavioral details like pagination or read-only hint, but not critical for this low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/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 extra meaning beyond the schema for the single parameter project_id. However, the parameter is self-explanatory (a project identifier).

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 the action (list) and resource (datasets in a project) with return fields id, name, type, timestamps. It distinguishes from sibling tools like get_dataset and list_models, though missing explicit mention that it returns all datasets.

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 such as get_dataset (single dataset) or list_projects. No exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dataset_versionsA

List all versions of a dataset (version number, version_type, qa_status, row counts).

project_id is optional — the backend resolves access from dataset_id when omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYes
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/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 reveals that the tool returns specific output fields (version_number, version_type, qa_status, row counts) and that the backend resolves access from dataset_id when project_id is omitted. However, it does not explicitly state that the operation is read-only, nor does it mention pagination, ordering, or error conditions, relying on the verb 'list' to imply non-destructive behavior.

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 consists of two efficient sentences with no redundancy. The first sentence front-loads the core purpose and output fields, while the second provides essential parameter guidance. Every word earns its place, making it highly concise and well-structured.

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 the low complexity (2 params, 1 required, no enums) and the existence of an output schema (which presumably details return structure), the description covers the primary purpose and parameter nuance. It does not mention potential limitations like pagination or ordering, but for a straightforward list operation, the level of detail is sufficient and complete enough for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning to the project_id parameter by stating it is optional and that the backend resolves access from dataset_id when omitted. The dataset_id parameter is not elaborated. The mention of output fields aids understanding but falls outside input parameter semantics. Overall, partial compensation 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 the verb 'list' and the resource 'all versions of a dataset', and specifies the fields returned (version number, version_type, qa_status, row counts). This distinguishes it from siblings like get_dataset_version (single version) and list_datasets (different resource), making the tool's purpose unambiguous.

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 guidance on the optionality of project_id but does not explicitly state when to use this tool vs alternatives such as get_dataset_version or list_datasets. There is no mention of conditions, prerequisites, or exclusions, leaving the agent to infer usage context from the tool's name and purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsC

List all models in a project (id, name).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 bears full responsibility. It only states the basic read operation without mentioning side effects, authentication requirements, rate limits, or pagination behavior. The minimal description adds little beyond the tool name.

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 that front-loads the action and scope. Every word serves a purpose with no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple listing tool, noting that output includes id and name, and an output schema exists. However, it lacks details on pagination, ordering, error states, and does not clarify completeness of the list, leaving some gaps for a new agent.

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?

The input parameter project_id has 0% schema description coverage, and the tool description does not explain its meaning or source. The phrase 'in a project' only vaguely hints at the parameter, failing to compensate for the schema gap.

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 action (list), resource (models), and scope (in a project). However, it does not distinguish from sibling tools like list_model_versions or get_model, which could cause confusion.

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 such as list_model_versions or get_model. The description lacks any context about prerequisites, appropriate use cases, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_model_versionsB

List model versions. Training state is status (SUBMITTED → TRAINING → TRAINING_COMPLETED or TRAINING_FAILED). Report readiness is edaReportStatus (PENDING | GENERATING | READY | FAILED).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
model_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description carries full burden. It adds valuable behavioral context by detailing the status fields: training state in 'status' with possible values, and report readiness in 'edaReportStatus'. This helps the agent interpret the response.

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?

Three short sentences: main purpose first, then status details. No fluff, front-loaded. Could be slightly more structured but efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 required params, no annotations, and an output schema, the description explains key response fields. However, it lacks info on pagination, ordering, or if all versions are returned. Somewhat complete but leaves gaps.

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 does not add any meaning to the two parameters ('project_id', 'model_id'). The agent must infer their purpose from names alone, which is insufficient.

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 explicitly states 'List model versions.' The verb 'list' and resource 'model versions' are clear. It distinguishes from siblings like 'get_model_version' (single item) and 'create_model_version'.

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 vs alternatives. Does not mention filtering, pagination, or compare to similar list tools like 'list_datasets' or 'list_models'. The sibling list is provided but not referenced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_predictionsA

List predictions (newest first). Optionally filter by project_id. Use get_prediction(id) for full result + batch download URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It reveals sorting order (newest first) and optional filtering, but omits details like pagination, result limits, or read-only nature. Adequate but not comprehensive.

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?

Two succinct sentences that immediately convey the main purpose and option. No wasted words; important information is front-loaded.

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 the tool's simplicity (one optional parameter, output schema exists), the description covers the core functionality, sorting, and provides an alternative. It lacks mention of pagination or result structure, but these are partially covered by the output schema.

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?

The only parameter, project_id, has 0% schema description coverage. The description adds that it is optional and filters, but does not specify format, constraints, or default behavior. Minimal added value beyond the schema structure.

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 lists predictions sorted newest first, with optional filtering by project_id. It distinguishes itself from get_prediction by noting that tool provides full results and download URL.

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?

The description explicitly suggests using get_prediction(id) for more detailed results, offering a clear alternative. However, it does not provide guidance on when to use list_predictions vs other sibling tools or when filtering is beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsA

List all projects for this API key (id, name, description, timestamps). Call this first to obtain project IDs needed by other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description notes it lists projects with timestamps but omits details about pagination, ordering, or rate limits. Minimal but adequate for a straightforward read operation.

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?

Two concise sentences with front-loaded action. Every word serves a purpose; no redundancy.

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?

Fully explains purpose and outputs given the existence of an output schema. Slightly lacks mention of potential pagination, but sufficient for a simple list-all 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?

Zero parameters, baseline 4. Description confirms no inputs needed, adding value by clarifying no filtering or arguments required.

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 'List all projects for this API key' with explicit return fields (id, name, description, timestamps). Distinguishes from sibling tools like get_project or create_project.

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?

Explicitly advises to call this first to obtain project IDs needed by other tools, establishing clear usage context. No exclusion criteria mentioned, but not needed for a simple listing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_batch_predictionA

Score an entire dataset against a trained model version.

project_id and target_feature are auto-resolved from the model version record when omitted. dataset_version_id identifies both the input file and the row count for credit billing.

Returns immediately by default (fire-and-poll). Use get_prediction(prediction_id) to check status (includes downloadReady flag for completed batches). Set wait_for_result=true to block.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_version_idYes
dataset_version_idYes
project_idNo
target_featureNo
wait_for_resultNo
max_wait_secondsNo
poll_interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It explains the fire-and-poll default, auto-resolution behavior, billing implications, and wait option. While it doesn't mention auth or rate limits, it covers the key behavioral traits for a batch prediction tool.

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?

Three well-structured sentences convey purpose, key parameter subtleties, and asynchronous behavior without redundancy. Every sentence adds value, and the description is front-loaded with the core action.

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 the complexity (7 parameters, output schema exists, 23 siblings), the description covers the core workflow, billing, and async mechanics. The only minor gap is no explicit explanation for model_version_id in parameter context, but overall it's sufficient for an agent to invoke correctly.

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?

Schema coverage is 0%, so description must compensate. It explains project_id/target_feature auto-resolution, dataset_version_id's dual role, and wait_for_result effect. However, model_version_id is not described beyond the tool's purpose (though it's implied as the trained model). Still adds significant value over the empty 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 starts with a clear verb+resource phrase: 'Score an entire dataset against a trained model version.' It explicitly distinguishes from sibling tools like run_prediction and get_prediction, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to omit optional parameters (auto-resolved from model version), how dataset_version_id drives billing, and how to choose between fire-and-poll vs blocking. References get_prediction as the status-check alternative, giving clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_predictionA

Run a single ad-hoc prediction against a trained model version.

project_id and target_feature are auto-resolved from the model version record when omitted. By default waits and returns the result inline (label + probability). Set wait_for_result=false to return immediately with prediction_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_version_idYes
input_dataYes
project_idNo
target_featureNo
wait_for_resultNo
max_wait_secondsNo
poll_interval_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description discloses default waiting behavior and async option via wait_for_result parameter. However, it omits authorization needs, error handling, or whether the operation is idempotent. The auto-resolution detail adds some transparency.

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?

Two sentences, front-loaded with purpose, then concise behavioral details. No redundant or irrelevant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, 2 required, and a nested object, the description is partially complete. It covers key behaviors but lacks detail on input_data format and other parameters. Output schema exists, so return values are not needed in description, but further guidance on parameter usage would improve completeness.

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 coverage is 0%, and description only explains project_id, target_feature (auto-resolved), and wait_for_result. It does not clarify input_data as a nested object, max_wait_seconds, poll_interval_seconds, or model_version_id. This leaves most parameters underspecified.

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 'Run a single ad-hoc prediction against a trained model version,' which includes a specific verb and resource. It distinguishes from siblings like run_batch_prediction by specifying 'ad-hoc' and 'single prediction.'

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?

Description explains auto-resolution of project_id and target_feature, and the wait_for_result option to control synchronous vs. asynchronous behavior. While it doesn't explicitly contrast with alternatives, the context implies usage for one-off predictions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_uploadA

Start an upload request and return a gateway upload curl command.

FULL 3-STEP FLOW:

Step 1 — call start_upload. Step 2 — run curl_command in bash. Replace FILE_PATH with the actual file path. Step 3 — call complete_upload with upload_request_id from step 1.

No API key or auth header is needed in the curl command. Pass dataset_id when uploading a new version of an existing dataset.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes
project_idYes
dataset_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full transparency burden. It discloses that no API key or auth header is needed in the curl command, and describes the return of a curl command. Does not mention side effects, but the operation is likely safe.

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 concise and well-structured: a single sentence stating purpose, followed by a numbered list of steps. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a 3-step upload process, the description fully explains the workflow. Output schema exists, so return values need not be described. All necessary context is provided for correct tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 3 params with 0% description coverage. Description only adds meaning for dataset_id (optional, for new version). Does not explain filename or project_id. Baseline is low, but adds some value.

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 that the tool starts an upload request and returns a curl command. It outlines the specific 3-step flow, distinguishing it from its sibling 'complete_upload' which is step 3.

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?

The description provides explicit usage guidelines by detailing the three-step flow, indicating when to call start_upload (step 1) and when to use dataset_id (for new versions). Lacks explicit when-not-to-use but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_training_jobA

Submit a training job for a model version.

Track completion: Poll list_model_versions for the model and watch the target version's status until it reaches TRAINING_COMPLETED or TRAINING_FAILED (same as the web UI). This is the most reliable approach across MCP hosts.

If your integration exposes get_training_status, you can instead pass the returned jobId with wait=true to block until the Batch job finishes (typical 2–3 min). Some hosts omit that tool when running stale server code — use list_model_versions then.

dataset_version_id can be omitted when the model version was created with create_model_version in the same flow — the backend resolves target_feature, file, and dataset from the model version record automatically. Pass it only to override with a different qa_cleaned/training dataset version.

Returns {jobId, modelVersionId, status}.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_version_idYes
dataset_version_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Explains return value and optional parameter behavior, but could mention error handling or timeouts for completeness.

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?

Well-structured with clear sections for tracking and parameter usage, no redundant information, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all needed aspects: submission, tracking, parameter behavior, and return value. No gaps despite absence of output schema, as return structure is described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description fully explains both parameters: 'model_version_id' is required, 'dataset_version_id' can be omitted or used to override, adding meaning beyond the schema structure.

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 uses a specific verb 'Submit' and resource 'training job for a model version', clearly distinguishing it from siblings like 'create_model_version' or 'get_training_status'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: track completion via polling 'list_model_versions', alternative blocking via 'get_training_status', and when to omit 'dataset_version_id'. Clearly states when to use which approach.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 24 tool updatesv0.1.0
    • First observedcomplete_upload
    • First observedcreate_dataset_version
    • First observedcreate_model
    • First observedcreate_model_version
    • First observedcreate_project
    • First observedget_account_status
    • First observedget_dataset
    • First observedget_dataset_version
    • First observedget_model
    • First observedget_model_report
    • First observedget_model_version
    • First observedget_prediction
    • First observedget_project
    • First observedget_training_status
    • First observedlist_dataset_versions
    • First observedlist_datasets
    • First observedlist_model_versions
    • First observedlist_models
    • First observedlist_predictions
    • First observedlist_projects
    • First observedrun_batch_prediction
    • First observedrun_prediction
    • First observedstart_upload
    • First observedsubmit_training_job

TDQS

A3.5/5.0
Disambiguation4/5

Most tools target distinct resources or actions (e.g., projects, datasets, models, predictions). Some potential overlap exists between get_training_status and list_model_versions for checking training status, but detailed descriptions help disambiguate.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., get_, list_, create_, run_) and use snake_case throughout, making the set predictable and easy to navigate.

Tool Count3/5

At 24 tools, the server is on the heavier side for the suggested range (16–25 is considered 'heavy'). While each tool serves a specific purpose, the count may feel overwhelming for an agent.

Completeness2/5

The tool set covers the core ML workflow but lacks delete operations for any resource (projects, datasets, models, predictions). This is a significant gap that will prevent agents from fully managing the lifecycle.

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that allows integration with Claude Desktop by creating and managing custom tools that can be executed through the MCP framework.
    88
    -
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants to make HTTP requests (GET, POST, PUT, DELETE) to external APIs through standardized MCP tools.
    4
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server built with the mcp-framework for developing and managing custom tools. It provides a structured foundation for building and integrating modular components like data processors and API clients into Claude Desktop.
    12
    -

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/EasyDeploy-AI/easydeploy-ai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server