Skip to main content
Glama
EasyDeploy-AI

easydeploy-ai-mcp

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHTTP bind host.0.0.0.0
PORTNoHTTP bind port.8080
EDA_API_KEYNoRequired 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_BASENoOverrides the default production API. Set only when targeting a non-production endpoint. Trailing /v1 is optional.https://api.easydeploy.ai
EDA_UI_BASE_URLNoPrefix for ui_url fields.https://easydeploy.ai
EDA_OAUTH_ENABLEDNoSet 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.0
MCP_SERVICE_TOKENNoLegacy single-tenant gate. If set, HTTP mode requires Authorization: Bearer <token> for /mcp (not for GET /healthz). Mutually exclusive with EDA_OAUTH_ENABLED.
EDA_COGNITO_REGIONNoAWS region for the user pool.us-east-1
EDA_MCP_OAUTH_ISSUERNoPublic MCP base URL (no path) for authorization_servers and proxy .well-known/oauth-authorization-server issuer. Default: request origin.
EDA_COGNITO_CLIENT_IDNoApp client ID expected in the access token's client_id claim. Required if EDA_OAUTH_ENABLED=1.
EDA_COGNITO_USER_POOL_IDNoCognito user pool that issues access tokens for the EasyDeploy API. Required if EDA_OAUTH_ENABLED=1.
EDA_REPORT_MAX_WAIT_SECONDSNoget_model_report poll budget.300
EDA_TRUST_FORWARDED_HEADERSNoSet to 1 behind ALB/reverse proxy so RFC 9728 resource uses https.0
EDA_REPORT_POLL_INTERVAL_SECONDSNoPoll interval in seconds.10

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

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

list_projectsA

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

get_projectA

Fetch a single project by id.

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

list_datasetsB

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

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.

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.

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.

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.

get_dataset_versionB

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

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

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.

get_modelC

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

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.

list_modelsC

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

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

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.

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.

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

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.

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.

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.

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

list_predictionsA

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

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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