different-ai/openwork · error · Error

DATABASE_URL is required (e.g. mysql://root:password@127.0.0

Error message

DATABASE_URL is required (e.g. mysql://root:password@127.0.0.1:3306/openwork_den)

What it means

Error "DATABASE_URL is required (e.g. mysql://root:password@127.0.0.1:3306/openwork_den)" thrown in different-ai/openwork.

Source

Thrown at ee/packages/den-admin-mcp/index.mjs:30

//
// Register in OpenWork (opencode.json):
//   { "mcp": { "den-admin": { "type": "local",
//       "command": ["node", "/path/to/ee/packages/den-admin-mcp/index.mjs"],
//       "environment": { "DATABASE_URL": "mysql://..." }, "enabled": true } } }

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import mysql from "mysql2/promise";
import { z } from "zod";

const DEFAULT_ROW_LIMIT = Number(process.env.DEN_ADMIN_MCP_ROW_LIMIT || 200);

let pool = null;
function getPool() {
  if (!pool) {
    const url = process.env.DATABASE_URL;
    if (!url) {
      throw new Error(
        "DATABASE_URL is required (e.g. mysql://root:password@127.0.0.1:3306/openwork_den)",
      );
    }
    pool = mysql.createPool({ uri: url, connectionLimit: 4, dateStrings: true });
  }
  return pool;
}

async function rows(sqlText, params = []) {
  const [result] = await getPool().query(sqlText, params);
  return result;
}

const n = (value) => Number(value ?? 0);

function ok(data) {
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
}

View on GitHub (pinned to 2b7df46e8a)

When it happens

Trigger: Thrown at ee/packages/den-admin-mcp/index.mjs:30 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of different-ai/openwork@2b7df46e8a (2026-09-01). Data as JSON: /api/errors/3810a325c9457426. Report an issue: GitHub.