Mintplex-Labs/anything-llm · error
MCP server name is required
Error message
MCP server name is required
What it means
#startMCPServer destructures { name, server } for each entry and throws immediately if name is falsy. Because entries are normally keyed by name from the MCP servers JSON, this guard mostly fires on programmatic calls or degenerate JSON where the key is an empty string.
Solutions
- Give every MCP server entry a unique non-empty name key
- Trim names when editing; avoid whitespace-only keys
- If calling programmatically, assert name is a non-empty string before invoking
- Re-boot MCP servers after fixing the JSON
Example fix
// before
{ "": { "command": "npx", "args": ["-y", "server-memory"] } }
// after
{ "memory": { "command": "npx", "args": ["-y", "server-memory"] } } Defensive patterns
Strategy: validation
Validate before calling
function validateServerNames(servers) {
for (const [name, server] of Object.entries(servers || {})) {
if (!name || !name.trim()) throw new Error('Every MCP server needs a non-empty name');
}
} Type guard
function isNonEmptyName(name) {
return typeof name === 'string' && name.trim().length > 0;
} Try / catch
try {
await hypervisor.bootMCPServers();
} catch (err) {
if (err.message === 'MCP server name is required') {
// find and remove/repair the empty-key entry in the JSON
}
throw err;
} Prevention
- Generate or require a name in any UI that adds MCP servers
- Trim and reject empty keys when editing mcp_servers.json
- Lint the JSON for empty keys in CI
When it happens
Trigger: An MCP servers JSON entry keyed as "" (empty string key), or calling the hypervisor's start API programmatically with a missing/empty name.
Common situations: Malformed hand-edited JSON with an empty key; automation scripts iterating entries and passing undefined names; whitespace-only names.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- MCP server definition is required
- MCP server args must be an array
- MCP server command or url is required
- MCP server " ": invalid URL
- MCP server " ": missing required "url" for transport
AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18).
Data as JSON: /api/errors/cae9ebd231bc9ce9.
Report an issue: GitHub.
Appendix: source
Thrown at server/utils/MCP/hypervisor/index.js:449
},
});
default:
return new SSEClientTransport(url, {
requestInit: {
headers: server.headers,
},
});
}
}
/**
* @private Start a single MCP server by its server definition from the JSON file
* @param {string} name - The name of the MCP server to start
* @param {Object} server - The server definition
* @returns {Promise<boolean>}
*/
async #startMCPServer({ name, server }) {
if (!name) throw new Error("MCP server name is required");
if (!server) throw new Error("MCP server definition is required");
const serverType = this.#parseServerType(server);
if (!serverType) throw new Error("MCP server command or url is required");
this.#validateServerDefinitionByType(name, server, serverType);
this.log(`Attempting to start MCP server: ${name}`);
const mcp = new Client({ name: name, version: "1.0.0" });
const transport = await this.#setupServerTransport(server, serverType);
// Add connection event listeners
transport.onclose = () => this.log(`${name} - Transport closed`);
transport.onerror = (error) =>
this.log(`${name} - Transport error:`, error);
transport.onmessage = (message) =>
this.log(`${name} - Transport message:`, message);
// Connect and await the connection with a timeout
this.mcps[name] = mcp;View on GitHub (pinned to 3aec848f28)