@thehammer/danx-dashboard-mcp 0.1.271 → 0.1.273

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,9 +8,9 @@ Stdio MCP server fronting danxbot's dashboard HTTP API. Since DX-3465 it exposes
8
8
 
9
9
  | Var | Purpose |
10
10
  |---|---|
11
- | `DANXBOT_DASHBOARD_URL` | Dashboard base, e.g. `http://danxbot-dashboard:5555` (inside compose) or `http://localhost:5555` (host) |
11
+ | `DANXBOT_DASHBOARD_URL` | Dashboard base, e.g. `http://danxbot-dashboard:5555` (inside compose) or `http://localhost:5555` (host). An operator session gets it from the danxbot plugin: its `dashboard_url` option (default the hosted dashboard), overridden by `DANXBOT_DASHBOARD_URL` in your shell or a repo's committed `.claude/settings.json` `env` block |
12
12
  | `DANX_DASHBOARD_CREDENTIAL` | A DISPATCH's credential: the bearer verbatim, substituted into the materialized `.mcp.json` from its overlay (DX-2862, `src/credential.ts`). Authoritative when set; it never signs out. An operator session sets nothing: with no credential the server boots SIGNED OUT, every tool except `plan_connect` returns one "not signed in" halt, and `plan_connect` requests access (below). The same resolver serves the `bridge` subcommand, so a session's tools and its event stream can never sign in as two different identities |
13
- | `DANXBOT_TEAM` | OPTIONAL, non-secret (DX-4446): the team slug (or id) whose approvers see this session's access request in their danxbot site. Set it in the repo's `.mcp.json` env block or the shell. Unset, the request is answered by link only. A value that is not a team slug fails at boot; a team the dashboard does not know makes `plan_connect` answer `unknown_team` (fix `DANXBOT_TEAM`), never a silent link fallback |
13
+ | `DANXBOT_TEAM` | OPTIONAL, non-secret (DX-4446): the team slug (or id) whose approvers see this session's access request in their danxbot site. Set it in your shell or a repo's committed `.claude/settings.json` `env` block. Unset, the request is answered by link only. A value that is not a team slug fails at boot; a team the dashboard does not know makes `plan_connect` answer `unknown_team` (fix `DANXBOT_TEAM`), never a silent link fallback |
14
14
  | `DANX_REPO_NAME` | OPTIONAL (DX-4555): repo half of the qualified board id; sent as the access request's repo label |
15
15
  | `DANXBOT_BOARD_NAME` | OPTIONAL (DX-4555; needs `DANX_REPO_NAME`): board-slug half of the qualified board id (the dispatch injects `board.slug` here). With neither variable set (the danxbot plugin's own server) the server has no default board: a call that needs a board must carry its `board` argument or the dashboard answers 400 (plan and plan-session routes take their boards from the plan and need none) |
16
16
 
package/dist/index.js CHANGED
@@ -63,7 +63,7 @@
63
63
  * halts, and `plan_connect` requests access (`session-access.ts`)
64
64
  * DANXBOT_TEAM OPTIONAL (DX-4446), non-secret: the team slug (or id) whose
65
65
  * approvers see this session's access request in their danxbot
66
- * site. Set it in the repo's `.mcp.json` env block or the shell.
66
+ * site. Set it in your shell or a repo's committed `.claude/settings.json` `env` block.
67
67
  * Unset: the request is answered by link only. Set but not a
68
68
  * valid ref, or unknown to the dashboard: fails loud, never a
69
69
  * silent fall back to the link flow.
@@ -180,7 +180,7 @@ function boot() {
180
180
  const repo = readEnvOptional("DANX_REPO_NAME");
181
181
  const boardName = readEnvOptional("DANXBOT_BOARD_NAME");
182
182
  // DX-4555: a session started from the danxbot plugin's own server names no board; each call then
183
- // carries a `board` argument. A board slug with no repo half is a half-written .mcp.json: fail loud.
183
+ // carries a `board` argument. A board slug with no repo half is a half-written DANXBOT_BOARD_NAME: fail loud.
184
184
  if (boardName !== undefined && repo === undefined) {
185
185
  console.error("[danx-dashboard-mcp] DANXBOT_BOARD_NAME is set but DANX_REPO_NAME is missing or empty");
186
186
  process.exit(1);
@@ -49,7 +49,7 @@ const DENIED_INSTRUCTION = "The user denied the request. Do not retry unless the
49
49
  const DASHBOARD_OUTDATED_ERROR = "this dashboard does not support request-and-approve yet (POST /api/access-requests answered 404): " +
50
50
  "it must be updated before this session can sign in";
51
51
  const RATE_LIMITED_ERROR = "too many access requests from this address; wait, then call plan_connect again";
52
- const unknownTeamError = (team) => `the dashboard has no team "${team}" (DANXBOT_TEAM); fix DANXBOT_TEAM in this server's env (the repo's .mcp.json env block or the shell) and restart the session`;
52
+ const unknownTeamError = (team) => `the dashboard has no team "${team}" (DANXBOT_TEAM); fix DANXBOT_TEAM in this server's env (your shell, or a repo's committed .claude/settings.json env block) and restart the session`;
53
53
  const NO_SESSION_ID_ERROR = "this server has no CLAUDE_CODE_SESSION_ID, so it cannot request a session key";
54
54
  const CLAIMED_LOST_ERROR = "the dashboard says this request was already claimed, but this process never received the key; " +
55
55
  "start a new request";
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * THE PROBLEM THIS SOLVES. `danx-dashboard-mcp bridge` runs from a plugin hook,
6
6
  * in the SESSION's environment — not in the MCP server's, which is the only
7
- * place the server's `.mcp.json` env block exists. So the bridge cannot see
7
+ * place the server's own environment exists. So the bridge cannot see
8
8
  * what the server was configured with, and before this it simply used its own
9
9
  * ambient env credential. When that was a different credential from
10
10
  * the server's, every event was dropped silently (the card's incident).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thehammer/danx-dashboard-mcp",
3
- "version": "0.1.271",
3
+ "version": "0.1.273",
4
4
  "description": "Stdio MCP server fronting danxbot's dashboard API for agents (operator sessions and dispatched workers alike): the generic danxbot_api/danxbot_api_list/danxbot_api_spec tools reach any route the caller's credential may call, plus dedicated agent-specific tools (plan_connect, request_permission, attach_file, and danxbot_slack_reply) (DX-3465, PLN-11 R-25).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@modelcontextprotocol/sdk": "1.29.0",
34
- "@thehammer/danx-session-telemetry": "0.1.29",
34
+ "@thehammer/danx-session-telemetry": "0.1.41",
35
35
  "zod": "^3.25.76"
36
36
  },
37
37
  "devDependencies": {