easydeploy-ai-mcp
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@easydeploy-ai-mcplist my projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Open Claude in the browser or open Claude Desktop.
Open Settings, then Connectors, and choose Add custom connector.
Enter exactly:
Name:
EasyDeploy AIRemote MCP server URL:
https://mcp.easydeploy.ai/mcp
Save the connector so EasyDeploy appears in your list of connectors.
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-mcp2. Add to Claude Desktop config
Edit (or create) the Claude Desktop config file:
OS | Path |
macOS |
|
Windows |
|
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
/mcpand GET /healthz for load balancers.Hardening: HTTPS-only calls to the EasyDeploy API; optional
MCP_SERVICE_TOKENfor 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-mcpFrom 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 |
| stdio / legacy HTTP | Required for stdio and legacy HTTP (no OAuth). Not used for outbound API calls when |
| No | Overrides the default production API ( |
| No | Prefix for |
| No | Legacy single-tenant gate. If set, HTTP mode requires |
| No | Set to |
| OAuth | Cognito user pool that issues access tokens for the EasyDeploy API. |
| OAuth | App client ID expected in the access token's |
| No | AWS region for the user pool (default |
| No |
|
| No | Poll interval in seconds (default |
| No | HTTP bind (defaults |
| No | Set to |
| No | Public MCP base URL (no path) for |
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-stdioOr: 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-httpOr: 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=1plusEDA_COGNITO_USER_POOL_IDandEDA_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 (prefixeda_live_) are accepted in the sameAuthorization: Bearerheader 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 includesregistration_endpoint, andPOST /oauth/registerreturns the static Cognito MCPEDA_COGNITO_CLIENT_ID(RFC 7591-style, public client). 401 responses includeWWW-Authenticate: Bearer …so MCP clients can discover the auth server. Note: Cognito access tokens carryclient_id, notaud; do not configure an audience.Shared-secret gate (legacy single-tenant): set
MCP_SERVICE_TOKEN. All outbound API calls use the staticEDA_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.shHost 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-mcpDocumentation
docs/claude-getting-started.md — EasyDeploy + Claude: Connectors or local Desktop config JSON
docs/claude.md — Claude Connectors vs Claude Code, transports, headers
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]"
pytestOptional — 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 toolscomplete_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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| name | Yes | ||
| upload_request_id | Yes | ||
| description | No | ||
| dataset_type | No | train | |
| dataset_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| dataset_id | Yes | ||
| version_type | No | ||
| file_url | No | ||
| qa_metadata | No | ||
| version_id | No | ||
| qa_status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must 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.
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.
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.
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.
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.
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_idandname(and optionaldescription).Update/rename: also pass
model_idplus the fields to change.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| name | Yes | ||
| description | No | ||
| model_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| model_id | Yes | ||
| dataset_version_id | Yes | ||
| target_feature | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations 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.
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.
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.
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.
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.
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 optionaldescription).Update/rename: pass
project_idof an existing project plus the fields to change (nameand/ordescription).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must 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.
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.
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.
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.
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.
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_idanddataset_idonly.Update/rename: also pass
nameand/ordescriptionto change.
Datasets are created via complete_upload (the upload flow); use this
tool for reads and metadata edits.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| dataset_id | Yes | ||
| name | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| dataset_id | Yes | ||
| version_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| model_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model_id | Yes | ||
| project_id | No | ||
| model_version_id | No | ||
| full_report | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| model_id | Yes | ||
| version_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations 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.
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.
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.
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.
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.
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:
outputcontains the label/probability.Batch completed:
download_urlandcurl_commandare included automatically (tokenized gateway proxy, safe from remote sandbox).
| Name | Required | Description | Default |
|---|---|---|---|
| prediction_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| wait | No | ||
| timeout_seconds | No | ||
| poll_interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset_id | Yes | ||
| project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| model_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model_version_id | Yes | ||
| dataset_version_id | Yes | ||
| project_id | No | ||
| target_feature | No | ||
| wait_for_result | No | ||
| max_wait_seconds | No | ||
| poll_interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| model_version_id | Yes | ||
| input_data | Yes | ||
| project_id | No | ||
| target_feature | No | ||
| wait_for_result | No | ||
| max_wait_seconds | No | ||
| poll_interval_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | ||
| project_id | Yes | ||
| dataset_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full 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.
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.
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.
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.
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.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| model_version_id | Yes | ||
| dataset_version_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, 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.
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.
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.
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.
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.
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.
24 tool updates
v0.1.0- First observed
complete_upload - First observed
create_dataset_version - First observed
create_model - First observed
create_model_version - First observed
create_project - First observed
get_account_status - First observed
get_dataset - First observed
get_dataset_version - First observed
get_model - First observed
get_model_report - First observed
get_model_version - First observed
get_prediction - First observed
get_project - First observed
get_training_status - First observed
list_dataset_versions - First observed
list_datasets - First observed
list_model_versions - First observed
list_models - First observed
list_predictions - First observed
list_projects - First observed
run_batch_prediction - First observed
run_prediction - First observed
start_upload - First observed
submit_training_job
TDQS
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.
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.
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.
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
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
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that provides integration with the Coolify API, enabling DevOps teams to manage Coolify deployments, applications, services, and servers through MCP tools.3216946MIT
- FlicenseNot gradedqualityDmaintenanceA 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-
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to make HTTP requests (GET, POST, PUT, DELETE) to external APIs through standardized MCP tools.42MIT
- FlicenseNot gradedqualityDmaintenanceA 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EasyDeploy-AI/easydeploy-ai-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server