Skip to main content
Glama
jmpijll

unraid-code-mode-mcp

by jmpijll

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_TRANSPORTNoTransport mode: 'stdio' (default) or 'http'.
UNRAID_API_KEYYesAPI key for authenticating with the Unraid server.
UNRAID_BASE_URLYesThe base URL of the Unraid server (e.g., https://tower.local or https://192.168.1.10).
UNRAID_INSECURENoSet to 'true' to skip TLS verification (lab use only).
UNRAID_CA_CERT_PATHNoPath to a CA certificate file for TLS verification.
UNRAID_EXECUTE_TIMEOUT_MSNoSandbox execution timeout in milliseconds (1 s – 10 min, default 30000).

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
searchA

Search the Unraid GraphQL schema by writing JavaScript.

The sandbox is read-only — no network. Use this tool to discover what to call before invoking execute.

Globals

  • index{ namespace, title, version, sourceUrl, operations[], types }. Each operation is the compact form: { kind: 'query'|'mutation', namespace: 'local', name, description, args, returnType, returnTypeFields, deprecated }.

  • unraid.local — same shape as index for parity with the execute tool. May be null if no spec is loaded.

  • searchOperations(query, limit?) — text-ranked search across name, description, args, and return type.

  • getOperation(name) — full operation info including arg types and return-type field hints.

  • findOperationsByName(substring) — list operations whose name contains the substring (case-insensitive).

  • getType(typeName) — full named-type info (fields for OBJECT/INTERFACE/INPUT_OBJECT, members for UNION, enumValues for ENUM).

  • console.log() — captured into the tool output.

Examples

// All queries that mention "docker"
searchOperations('docker', 20).map(function (op) { return op.name; });
// Full detail on the `info` query
getOperation('info');
// Inspect the Array type to see its fields
getType('Array');
executeA

Run Unraid GraphQL operations by writing JavaScript that uses the unraid.local namespace.

Although the sandbox is JavaScript, the calls below appear synchronous — await is supported and recommended. Each call returns once the host-side HTTP request settles.

Surfaces:

  • unraid.local.graphql({ query, variables, operationName }) — POST any GraphQL document directly to /graphql. Returns the unwrapped data field.

  • unraid.local.query.<fieldName>({ args, fields }) — typed query call. args map to GraphQL variables; fields is either a GraphQL selection-set string (no wrapping braces) or a shorthand array of leaf field names. fields is required for non-scalar return types.

  • unraid.local.mutation.<fieldName>({ args, fields }) — typed mutation call, same rules.

  • unraid.local.request({ method, path, body, headers }) — raw HTTP escape hatch for endpoints outside GraphQL. Returns { status, body, headers }.

  • unraid.local.spec{ title, version, sourceUrl, queryCount, mutationCount } for diagnostics.

Operations are async — use await. The final expression is the tool result.

Examples

// Read system info via a typed query.
const info = await unraid.local.query.info({
  fields: ['os { distro release kernel }', 'versions { unraid api }', 'cpu { manufacturer brand cores }'].join(' '),
});
return info;
// List Docker containers with a shorthand selection.
const containers = await unraid.local.query.dockerContainers({
  fields: ['id', 'names', 'state', 'status', 'image'],
});
return containers.map(function (c) { return { name: c.names[0], state: c.state }; });
// Raw GraphQL document — handy for fragments and aliases.
const data = await unraid.local.graphql({
  query: 'query { array { state capacity { kilobytes { free total } } } }',
});
return data;

Limits

  • Hard ceiling on API calls per execute; exceeded → error.

  • Sandbox memory + time bounded.

  • Credentials never enter the sandbox.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jmpijll/unraid-code-mode-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server