mda CLI compiles and deploys code-first Managed Deep Agents.
It is included with the managed-deepagents npm package.
Managed Deep Agents is in public beta and available on LangSmith Cloud in the US region only.
Install
Install the package for the language you use to author your agent. The package exposes themda binary.
For npm, install globally or run the binary with npm exec.
npm
Authentication
mda deploy reads API keys in this order:
LANGGRAPH_HOST_API_KEYLANGSMITH_API_KEYLANGCHAIN_API_KEY
.env file first, then from the process environment. If no key is found in an interactive terminal, mda deploy prompts for a LangSmith API key and saves it to the project .env file.
.env
LANGSMITH_WORKSPACE_ID or pass --workspace-id to mda deploy.
The LangSmith API key authenticates the deploy. The agent’s model provider also needs credentials at runtime. Set the provider key in .env, export it in your shell, or configure it as a LangSmith workspace secret. For example, openai:gpt-5.5 requires OPENAI_API_KEY.
mda deploy forwards non-reserved .env entries, such as OPENAI_API_KEY, MCP tokens, and custom tool credentials, as hosted deployment secrets. Reserved platform variables, including LANGSMITH_API_KEY, LANGGRAPH_HOST_API_KEY, LANGCHAIN_API_KEY, and LANGSMITH_WORKSPACE_ID, are used for CLI authentication and deploy routing but are not uploaded as user-managed deployment secrets.
Command overview
Initialize projects
Usemda init to create a new project directory:
The command detects the language from the current directory:
The scaffold creates:
Eval tasks are opt-in and are not created by
mda init. Managed Deep Agents evals are Harbor tasks under evals/tasks/. Run mda evals init <name> only when you want an optional starter task under evals/scaffold/.
Build projects
Usemda build to compile a project into a managed LangGraph app without deploying it:
Evaluate projects
evals/tasks/ is the canonical Harbor dataset. Author complete Harbor tasks there directly. The mda eval command, also available as mda evals, can scaffold a starter task and package the managed agent for Harbor. MDA prints a harbor run command but does not run trials.
Task names passed to
mda evals init can contain ASCII letters, numbers, _, and -.
mda evals compile flags:
For Harbor task authoring, optional scaffolding, credentials, and running trials, see Evals.
Develop locally
Usemda dev to compile a project and run the local LangGraph dev server:
mda dev compiles into .mda/build, then starts the language-specific LangGraph dev server from that directory:
When a sandbox is configured,
mda dev tries the configured provider. If provider credentials are unavailable or provider creation fails, it falls back to a local temp-directory sandbox and prints the chosen path.
For local development, mda dev stages the project .env file into .mda/build/.env so LangGraph can load model provider keys and other runtime credentials.
Deploy projects
Usemda deploy to compile and deploy a project to LangSmith:
Deploy runs these steps:
- Validate the project directory and load the agent entry file.
- Resolve the LangSmith API key and optional workspace ID.
- Collect non-reserved
.envvalues as hosted deployment secrets. - Verify the model provider API key is available from
.env, the shell environment, or LangSmith workspace secrets. - Sync deploy-owned context to Context Hub.
- Compile the project into
.mda/buildand extract optionalschedules/declarations. - Create or find a LangSmith hosted deployment by name.
- Archive the build, upload it, and trigger a remote build.
- Poll the revision until it reaches
DEPLOYEDunless--no-waitis set. - Reconcile the managed LangSmith cron jobs for schedules unless
--no-waitis set.
--configure-slack, deploy requires exactly one Slack channel and a project-root slack-app-manifest.json. When the Slack credentials are missing, it writes .mda/slack/bootstrap-manifest.json and exits before changing remote state. After you create the app and add its credentials, rerun the waited deployment to write .mda/slack/app-manifest.json with the deployed Events URL. For the complete workflow, see Slack channels.
On success, the CLI prints the LangSmith deployment dashboard URL. For secrets routing and deploy tips, see Deploy an agent.
Read deployment logs
Usemda logs to tail Agent Server logs for a deployed agent:
Delete deployments
Usemda delete to delete a deployed Managed Deep Agent and the LangSmith resources it created. mda destroy is an alias.
Troubleshooting
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

