﻿---
title: "连接 Dagu MCP"
summary: "启动 Dagu 后连接 /mcp。使用 builtin 鉴权时，通过 DAGU_MCP_API_KEY 环境变量提供 API key。"
category: mcp
level: starter
surfaces: [cli, app, ide]
tags: ["MCP", "Dagu", "HTTP", "bearer_token_env_var"]
canonical: /tips/dagu-mcp-http/
---

# 连接 Dagu MCP

启动 Dagu 后连接 /mcp。使用 builtin 鉴权时，通过 DAGU_MCP_API_KEY 环境变量提供 API key。

Dagu 文档包含 Codex 的配置说明。MCP 做在 Dagu HTTP 服务里，不用再装客户端包。先 `dagu start-all`。本机入口是 `http://localhost:8080/mcp`，**带** `/mcp`。官方写：只有客户端和 Dagu 在同一台机器时才用 localhost。远程换成 `https://dagu.example.com/mcp`。服务挂在 `/dagu` 这种 base path 时，MCP 在 `https://dagu.example.com/dagu/mcp`，漏了前缀会 404。

无鉴权（`none`）只给隔离本机：

```bash
codex mcp add dagu --url http://localhost:8080/mcp
```

`builtin` 鉴权要 API key。官方 Codex 命令：

```bash
codex mcp add dagu --url http://localhost:8080/mcp --bearer-token-env-var DAGU_MCP_API_KEY
```

```toml
[mcp_servers.dagu]
url = "http://localhost:8080/mcp"
bearer_token_env_var = "DAGU_MCP_API_KEY"
enabled = true
```

`--bearer-token-env-var` 填的是变量**名**，不是 key。Codex 从启动环境中读取 `DAGU_MCP_API_KEY`。先 export 再开 `codex`。从 Dock 或开始菜单启动的桌面应用通常不会加载终端环境变量。Codex 不读 `.env`。客户端对照表写明：Codex 只走 Bearer，而且只从环境变量取。通过环境变量保存凭据。此服务使用 API key 认证，无需运行 `mcp login dagu`。

角色跟 Web UI / REST 同一套：`viewer` 只读，`operator` 能跑/停，`developer` 才能改 DAG。给 AI 的 key 尽量只开 `mcp` surface，无需同时开放 `rest_api`。可以先让它 `dagu_read` `dagu://reference/authoring`。改工作流先 `dagu_change` 的 `mode=preview`，确认后再 `apply`。跑任务走 `dagu_execute`。

Dagu 的连接配置保存在用户层 `~/.codex/config.toml`。使用独立 profile 时，文件为 `~/.codex/名字.config.toml`，通过 `--profile` 加载。

网页 Cloud 不读取 `~/.codex/config.toml`。修改后重新打开会话。用 `codex mcp get dagu` 看传输是 streamable_http。会话里 `/mcp` 应列出 `dagu_read`、`dagu_change`、`dagu_execute`。

## 来源

- [Dagu · Codex](https://docs.dagu.sh/mcp/clients/codex)
- [Dagu · MCP Quickstart](https://docs.dagu.sh/mcp/quickstart)
- [Dagu · MCP Clients](https://docs.dagu.sh/mcp/clients/)
