Skip to main content
Glama

Delia

MCP server that adds persistent learning and semantic code intelligence to AI coding assistants.

What It Does

  • Playbooks - Per-project patterns learned over time, indexed in ChromaDB for semantic retrieval

  • Memories - Persistent knowledge (markdown), searchable via embeddings

  • Profiles - Framework-specific guidance, semantically matched to your task

  • Code Index - Codebase summaries and symbols indexed for intelligent navigation

  • LSP Tools - Semantic code navigation: find references, go to definition, rename symbols

  • Learning Loop - Extracts insights from completed tasks and updates playbooks

All knowledge is stored in .delia/chroma/ for fast semantic search.

Full Documentation | Quick Start | Tool Reference

Quick Start

# 1. Clone and install
git clone https://github.com/zbrdc/delia.git
cd delia
uv sync

# 2. Start HTTP server (recommended for multi-project)
uv run delia run -t http --port 8765

# 3. Initialize your project (from project directory)
cd ~/your-project
uv run --directory ~/git/delia delia init-project

Complete Setup Guide

Step 1: Install Delia

git clone https://github.com/zbrdc/delia.git
cd delia
uv sync

Step 2: Configure MCP Clients

Auto-detect and configure all supported AI clients:

uv run delia install

Or install to a specific client:

uv run delia install claude    # Claude Code
uv run delia install cursor    # Cursor
uv run delia install vscode    # VS Code

List available clients:

uv run delia install --list

Step 3: Start the Server

Option A: HTTP Transport (Recommended)

Best for multi-project setups. One server handles all projects.

uv run delia run -t http --port 8765

Add to each project's .mcp.json:

{
  "mcpServers": {
    "delia": {
      "type": "http",
      "url": "http://localhost:8765/mcp"
    }
  }
}

Note: HTTP servers won't appear in Claude Code's /mcp list, but tools work normally.

Option B: stdio Transport

Per-project server, managed by the AI client. Shows in /mcp list.

{
  "mcpServers": {
    "delia": {
      "command": "uv",
      "args": ["--directory", "/path/to/delia", "run", "delia", "serve"]
    }
  }
}

Step 4: Initialize Your Project

Option A: Via MCP (Recommended)

Let the AI agent initialize the project - it handles summarization:

# In Claude Code or Cursor, just ask:
"Initialize this project with Delia"
# Or use the MCP tool directly:
project(action="init", path="/path/to/your-project")

Option B: Via CLI (requires Ollama)

If you have Ollama running locally with a model:

cd ~/your-project
uv run --directory /path/to/delia delia init-project

This creates .delia/ with playbooks tailored to your tech stack.

Step 5: Verify Setup

uv run delia doctor

Usage

The AI assistant calls these tools:

auto_context("implement user auth")  # Load relevant patterns
[work on the task]
complete_task(success=True, bullets_applied=["id1"])  # Record feedback

Project Structure

your-project/
├── .delia/
│   ├── chroma/         # Vector database (primary storage)
│   ├── playbooks/      # Learned patterns (JSON, indexed to ChromaDB)
│   ├── memories/       # Persistent knowledge (Markdown, indexed to ChromaDB)
│   └── profiles/       # Framework guides (Markdown, indexed to ChromaDB)
└── CLAUDE.md           # Instructions for AI assistants

CLI Commands

delia run -t http        # Start HTTP server (MCP)
delia serve              # Start stdio server (MCP)
delia doctor             # Health check
delia init-project       # Initialize project (requires Ollama)
delia chat               # Interactive chat (requires Ollama)
delia agent "task"       # Single-shot task (requires Ollama)

Configuration

Create ~/.delia/.env:

DELIA_VOYAGE_API_KEY=your-key-here

Fallback options (no API key needed):

  • Ollama - Run ollama pull mxbai-embed-large

  • Sentence Transformers - CPU fallback, works offline

LLM Backends (for CLI features)

For init-project, chat, agent commands, configure backends in ~/.delia/settings.json:

{
  "backends": [{
    "name": "ollama-local",
    "url": "http://localhost:11434",
    "model": "llama3.2"
  }]
}

Requirements

  • Python 3.11+

  • uv (package manager)

  • Ollama (optional, for CLI LLM features - not needed if using MCP only)

License

GPL-3.0

Available Tools

9 tools
batchA

Execute multiple tasks in PARALLEL across all available GPUs for maximum throughput. Distributes work across local and remote backends intelligently.

WHEN TO USE:

  • Processing multiple files/documents simultaneously

  • Bulk code review, summarization, or analysis

  • Any workload that can be parallelized

Args: tasks: JSON string containing an array of task objects. Each object can have: - task: "quick"|"summarize"|"generate"|"review"|"analyze"|"plan"|"critique" - content: The content to process (required) - file: Optional file path - model: Force tier - "quick"|"coder"|"moe" - language: Language hint for code tasks

ROUTING LOGIC:

  • Distributes tasks across ALL available GPUs (local + remote)

  • Large content (>32K tokens) → Routes to backend with sufficient context

  • Normal content → Round-robin for parallel execution

  • Respects backend health and circuit breakers

Returns: Combined results from all tasks with timing and routing info

Example: batch('[ {"task": "summarize", "content": "doc1..."}, {"task": "review", "content": "code2...", "language": "python"}, {"task": "analyze", "content": "log3..."} ]')

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so well by detailing routing logic (distribution across GPUs, handling large content, round-robin, backend health), performance implications (maximum throughput), and return format (combined results with timing and routing info). It doesn't mention rate limits or auth needs, but covers key behavioral traits thoroughly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (description, usage, args, routing, returns, example) and front-loaded key information. It's appropriately sized for a complex tool, though slightly verbose; every sentence adds value, such as the routing logic details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (parallel execution, routing logic) and no annotations, the description is complete: it covers purpose, usage, parameters, behavior, and returns. With an output schema present, it needn't detail return values, but still provides useful context like timing and routing info, making it fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate fully. It does by explaining the 'tasks' parameter as a JSON string with an array of task objects, detailing each object's fields (task types, content, file, model, language), including enums and requirements. This adds comprehensive meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes multiple tasks in parallel across GPUs for maximum throughput, specifying the verb 'execute' and resource 'tasks' with the key characteristic of parallel distribution. It distinguishes from siblings like 'delegate' or 'queue_status' by emphasizing parallel execution rather than sequential delegation or status checking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly lists scenarios for using this tool: processing multiple files simultaneously, bulk operations like code review, and any parallelizable workload. It implicitly contrasts with non-parallel siblings by highlighting parallel execution, though it doesn't name specific alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delegateA

Execute a task on local/remote GPU with intelligent 3-tier model selection. Routes to optimal backend based on content size, task type, and GPU availability.

WHEN TO USE:

  • "locally", "on my GPU", "without API", "privately" → Use this tool

  • Code review, generation, analysis tasks → Use this tool

  • Any task you want processed on local hardware → Use this tool

Args: task: Task type determines model tier: - "quick" or "summarize" → quick tier (fast, 14B model) - "generate", "review", "analyze" → coder tier (code-optimized 14B) - "plan", "critique" → moe tier (deep reasoning 30B+) content: The prompt or content to process (required) file: Optional file path to include in context model: Force specific tier - "quick" | "coder" | "moe" | "thinking" OR natural language: "7b", "14b", "30b", "small", "large", "coder model", "fast", "complex", "thinking" language: Language hint for better prompts - python|typescript|react|nextjs|rust|go context: Serena memory names to include (comma-separated: "architecture,decisions") symbols: Code symbols to focus on (comma-separated: "Foo,Bar/calculate") include_references: True if content includes symbol usages from elsewhere backend_type: Force backend type - "local" | "remote" (default: auto-select)

ROUTING LOGIC:

  1. Content > 32K tokens → Uses backend with largest context window

  2. Prefer local GPUs (lower latency) unless unavailable

  3. Falls back to remote if local circuit breaker is open

  4. Load balances across available backends based on priority weights

Returns: LLM response with metadata footer showing model, tokens, time, backend

Examples: delegate(task="review", content="", language="python") delegate(task="generate", content="Write a REST API", backend_type="local") delegate(task="plan", content="Design caching strategy", model="moe") delegate(task="analyze", content="Debug this error", model="14b") delegate(task="quick", content="Summarize this article", model="fast")

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYes
contentYes
fileNo
modelNo
languageNo
contextNo
symbolsNo
include_referencesNo
backend_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and delivers comprehensive behavioral disclosure. It explains the 3-tier model selection logic, routing decisions based on content size and GPU availability, fallback mechanisms, load balancing, and what the return includes (metadata footer). This goes well beyond basic function description to reveal how the tool behaves under different conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, args, routing logic, returns, examples) and every sentence adds value. At ~300 words, it's appropriately detailed for a complex tool with 9 parameters. Minor deduction because some sections could be slightly more concise (e.g., the 'WHEN TO USE' bullets have some redundancy).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 9 parameters, 0% schema coverage, no annotations, but with an output schema, the description provides complete context. It covers purpose, usage guidelines, detailed parameter semantics, routing behavior, return format, and includes examples. The output schema handles return values, so the description appropriately focuses on usage and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage and 9 parameters, the description compensates fully by providing detailed semantics for each parameter. It explains how 'task' determines model tier with specific mappings, clarifies 'model' accepts both tier names and natural language descriptions, defines the purpose of 'language', 'context', 'symbols', 'include_references', and 'backend_type', and notes which parameters are required vs optional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Execute a task on local/remote GPU with intelligent 3-tier model selection. Routes to optimal backend based on content size, task type, and GPU availability.' This specifies the verb (execute), resource (GPU), and key differentiators (3-tier model selection, backend routing) that distinguish it from sibling tools like 'think' or 'models'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section provides explicit guidance with three bullet points covering local/private processing, specific task types (code review, generation, analysis), and general local hardware preference. This clearly tells the agent when to choose this tool over alternatives like 'think' (which might be for pure reasoning) or remote-only tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_model_info_toolA

Get detailed information about a specific model.

Returns VRAM requirements, context window size, and tier classification. For configured models, shows exact values. For unknown models, provides estimates.

Args: model_name: Name of the model to get info for (e.g., "qwen2.5:14b", "llama3.1:70b")

Returns: Formatted model information including VRAM, context, and tier

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it returns detailed model information, distinguishes between configured models (exact values) and unknown models (estimates), and specifies the return format. This covers the tool's functionality and output behavior well, though it doesn't mention potential errors or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, with the core purpose stated first, followed by key behavioral details, and then structured sections for Args and Returns. Every sentence earns its place by adding essential information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (single parameter, informational purpose), no annotations, and the presence of an output schema (which handles return values), the description is complete enough. It covers purpose, usage context, parameter semantics, and behavioral traits, providing all necessary context for an AI agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate fully. It does this excellently by clearly explaining the single parameter 'model_name', providing its purpose ('Name of the model to get info for') and concrete examples ('e.g., "qwen2.5:14b", "llama3.1:70b"'), adding significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get detailed information') and resource ('about a specific model'), distinguishing it from siblings like 'models' (likely listing models) or 'switch_model' (changing models). It explicitly identifies what information will be retrieved: VRAM requirements, context window size, and tier classification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying it's for getting information about 'a specific model', suggesting it should be used when detailed model specs are needed. However, it doesn't explicitly state when to use this tool versus alternatives like 'models' (which might list available models) or provide clear exclusions or prerequisites for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthA

Check health status of Delia and all configured GPU backends.

Only checks backends that are enabled in settings.json. Shows availability, loaded models, usage stats, and cost savings.

WHEN TO USE:

  • Verify backends are available before delegating

  • Check which models are currently loaded

  • Monitor usage statistics and cost savings

  • Diagnose connection issues

Returns: JSON with: - status: "healthy" | "degraded" | "unhealthy" - backends: Array of configured backend status - usage: Token counts and call statistics per tier - cost_savings: Estimated savings vs cloud API - routing: Current routing configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it only checks enabled backends, shows availability/loaded models/usage stats/cost savings, and returns specific JSON structure. It doesn't mention rate limits or authentication requirements, but covers most operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, constraints, usage scenarios, return format), front-loads the core purpose, and every sentence adds value without redundancy. The bulleted lists enhance readability without wasting space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's diagnostic nature, 0 parameters, no annotations, but with an output schema (implied by the detailed 'Returns' section), the description provides complete context: purpose, constraints, usage guidelines, and detailed return structure, making it fully self-contained for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0 parameters and 100% schema description coverage, the baseline would be 4. The description appropriately notes there are no parameters by not discussing any, which is correct for this parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Check health status') and resources ('Delia and all configured GPU backends'), distinguishing it from siblings like 'queue_status' or 'get_model_info_tool' by focusing on system-wide health rather than specific queue or model details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly lists four scenarios for using this tool, including verifying backend availability before delegation and diagnosing connection issues, providing clear guidance on when to select this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

modelsA

List all configured models across all GPU backends. Shows model tiers (quick/coder/moe) and which are currently loaded.

WHEN TO USE:

  • Check which models are available for tasks

  • Verify model configuration across backends

  • Understand task-to-model routing logic

Returns: JSON with: - backends: All configured backends with their models - currently_loaded: Models in GPU memory (no load time) - selection_logic: How tasks map to model tiers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: it's a read-only operation (implied by 'List'), it shows loaded vs. configured status, and it includes routing logic. However, it doesn't mention potential limitations like rate limits or authentication needs, which could be relevant for a tool querying system resources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, returns) and front-loaded key information. Every sentence adds value: the first defines the tool, the 'WHEN TO USE' bullets provide context, and the 'Returns' section clarifies output without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (0 parameters, no annotations, but has output schema), the description is complete. It explains what the tool does, when to use it, and what it returns, with the output schema handling detailed return structure. This covers all necessary context for a simple listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose and output, which is correct for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all configured models') and resource ('across all GPU backends'), distinguishing it from siblings like 'get_model_info_tool' (likely for single model details) and 'switch_model' (for changing models). It also specifies what information is included: model tiers and loaded status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'WHEN TO USE' section explicitly lists three scenarios for using this tool: checking available models, verifying configurations, and understanding routing logic. This provides clear guidance on when to use it versus alternatives like 'get_model_info_tool' for detailed info on a specific model.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

queue_statusA

Get current status of the model queue system.

Shows loaded models, queued requests, and GPU memory usage. Useful for monitoring queue performance and debugging loading issues.

Returns: JSON with queue status, loaded models, and pending requests

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool returns (queue status, loaded models, pending requests, GPU memory usage) and its monitoring/debugging purpose. However, it lacks details on potential side effects (e.g., if it's read-only, performance impact, or rate limits), which would be valuable given the absence of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise, with three short paragraphs that front-load the purpose, provide usage context, and specify the return format. Every sentence adds value without redundancy, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (monitoring system status), no annotations, and the presence of an output schema (which handles return value details), the description is complete. It covers the tool's purpose, usage scenarios, and high-level output structure, leaving technical specifics to the output schema, which is appropriate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose and output without unnecessary parameter details, earning a high baseline score for this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('current status of the model queue system'). It distinguishes itself from siblings like 'health' (general system health), 'models' (likely listing models), and 'get_model_info_tool' (specific model details) by focusing exclusively on queue status, loaded models, and queued requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool ('Useful for monitoring queue performance and debugging loading issues'), which helps differentiate it from siblings. However, it does not explicitly state when NOT to use it or name specific alternatives (e.g., 'health' for broader system status), keeping it from a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

switch_backendB

Switch the active LLM backend.

Args: backend_id: ID of the backend to switch to (from settings.json)

Returns: Confirmation message with current status

ParametersJSON Schema
NameRequiredDescriptionDefault
backend_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that backend_id comes 'from settings.json' and returns a 'confirmation message with current status', which adds some context. However, it lacks critical details: whether this requires specific permissions, if it's a destructive change affecting ongoing processes, rate limits, or error conditions. For a mutation tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise. It front-loads the purpose in the first sentence, followed by clear 'Args' and 'Returns' sections. Every sentence earns its place by providing essential information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a mutation with one parameter) and the presence of an output schema (which handles return values), the description is minimally complete. It covers the purpose and parameter semantics but lacks behavioral context and usage guidelines. With no annotations, it should do more to explain permissions, side effects, or error handling for a backend-switching operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It adds meaningful semantics: 'backend_id' is described as 'ID of the backend to switch to (from settings.json)', clarifying the source and purpose beyond the bare schema. Since there's only one parameter, this adequately covers its semantics, though it doesn't specify format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Switch the active LLM backend.' This is a specific verb ('switch') with a clear resource ('active LLM backend'). However, it doesn't explicitly differentiate from its sibling 'switch_model' (which might switch models within a backend), leaving some ambiguity about sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing to know backend IDs from settings.json), exclusions, or compare it to sibling tools like 'switch_model' or 'models'. The agent must infer usage context solely from the purpose statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

switch_modelA

Switch the model for a specific tier at runtime.

This allows dynamic model experimentation without restarting the server. Changes are persisted to settings.json for consistency across restarts.

Args: tier: Model tier to change - "quick", "coder", "moe", or "thinking" model_name: New model name (must be available in the current backend)

Returns: Confirmation with model change details and availability status

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYes
model_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds valuable context beyond basic functionality: it explains that changes are 'persisted to settings.json for consistency across restarts,' which is a key behavioral trait not inferable from the schema. However, it doesn't cover potential side effects, error conditions, or permissions needed, keeping it from a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by context sentences that earn their place by explaining benefits and persistence. The 'Args' and 'Returns' sections are front-loaded with critical information, and there is no redundant or wasteful text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (runtime model switching with persistence), no annotations, and an output schema present (which handles return values), the description is mostly complete. It covers purpose, parameters, and key behavioral context. However, it lacks details on error handling or integration with sibling tools, preventing a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate fully. It does so effectively: the 'Args' section clearly defines both parameters ('tier' and 'model_name'), including allowed values for 'tier' ('quick', 'coder', 'moe', or 'thinking') and constraints for 'model_name' ('must be available in the current backend'). This adds essential meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Switch the model for a specific tier at runtime.' It specifies the verb ('switch'), resource ('model'), and scope ('for a specific tier'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'switch_backend' or 'get_model_info_tool', which would be needed for a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some implied usage context: 'This allows dynamic model experimentation without restarting the server' suggests when to use it (for runtime model changes). However, it doesn't explicitly state when to use this tool versus alternatives like 'switch_backend' or 'models', nor does it mention prerequisites or exclusions, leaving gaps in guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

thinkA

Deep reasoning for complex problems using local GPU with extended thinking. Offloads complex analysis to local LLM - zero API costs.

WHEN TO USE:

  • Complex multi-step problems requiring careful reasoning

  • Architecture decisions, trade-off analysis

  • Debugging strategies, refactoring plans

  • Any situation requiring "thinking through" before acting

Args: problem: The problem or question to think through (required) context: Supporting information - code, docs, constraints (optional) depth: Reasoning depth level: - "quick" → Fast answer, no extended thinking (14B model) - "normal" → Balanced reasoning with thinking (14B coder) - "deep" → Thorough multi-step analysis (30B+ MoE model)

ROUTING:

  • Uses largest available GPU for deep thinking

  • Automatically enables thinking mode for normal/deep

  • Prefers local GPU, falls back to remote if needed

Returns: Structured analysis with step-by-step reasoning and conclusions

Examples: think(problem="How should we handle authentication?", depth="deep") think(problem="Debug this error", context="", depth="normal")

ParametersJSON Schema
NameRequiredDescriptionDefault
problemYes
contextNo
depthNonormal

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and delivers substantial behavioral context: it explains computational resource usage ('local GPU', 'falls back to remote'), cost implications ('zero API costs'), model selection logic based on depth, and automatic thinking mode activation. It doesn't mention rate limits or error handling, but covers most key behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (purpose, usage guidelines, args, routing, returns, examples) and front-loaded key information. While comprehensive, some sections like 'ROUTING' could be more concise, but overall it maintains good information density with minimal redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (reasoning engine with resource management), no annotations, and 0% schema coverage, the description provides exceptional completeness: it covers purpose, usage, parameters, behavioral traits, routing logic, return format, and examples. The presence of an output schema reduces need to explain returns, and the description fills all other gaps effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing detailed parameter semantics: it explains each parameter's purpose, marks 'problem' as required, describes 'context' as supporting information, and provides a comprehensive breakdown of 'depth' values with model specifications and behavior differences. This adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Deep reasoning for complex problems using local GPU with extended thinking' and distinguishes it from siblings by specifying it's for 'complex multi-step problems requiring careful reasoning' rather than batch processing, delegation, or system operations. It explicitly contrasts with quick actions by emphasizing extended thinking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a dedicated 'WHEN TO USE' section with explicit guidance: it lists specific use cases (architecture decisions, debugging strategies), provides clear alternatives (different depth levels), and distinguishes when to use this tool versus other approaches. The examples further clarify appropriate contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv1.0.0
    • First observedbatch
    • First observeddelegate
    • First observedget_model_info_tool
    • First observedhealth
    • First observedmodels
    • First observedqueue_status
    • First observedswitch_backend
    • First observedswitch_model
    • First observedthink

TDQS

A4/5.0
Disambiguation3/5

There is significant overlap between several tools, particularly 'delegate' and 'think', which both handle complex reasoning tasks with similar routing logic, and 'batch' which essentially parallelizes 'delegate' tasks. However, descriptions clarify distinctions: 'delegate' is for single tasks, 'think' emphasizes deep reasoning, and 'batch' is for parallel execution. Other tools like 'health', 'models', and 'queue_status' have distinct monitoring purposes.

Naming Consistency4/5

Most tools use clear, consistent snake_case naming (e.g., 'get_model_info_tool', 'switch_backend', 'queue_status'), with descriptive verbs like 'get', 'switch', and 'think'. The only minor deviation is 'get_model_info_tool', which includes 'tool' redundantly, but overall the naming is predictable and readable across the set.

Tool Count5/5

With 9 tools, the count is well-scoped for a GPU/LLM management server. Each tool serves a distinct role: execution ('delegate', 'batch', 'think'), configuration ('switch_backend', 'switch_model'), and monitoring ('health', 'models', 'queue_status', 'get_model_info_tool'). No tool feels unnecessary, and the set covers core operations without being overwhelming.

Completeness5/5

The tool surface comprehensively covers the domain of GPU/LLM task execution and management. It includes task execution ('delegate', 'batch', 'think'), model and backend configuration ('switch_backend', 'switch_model'), and full monitoring ('health', 'models', 'queue_status', 'get_model_info_tool'). There are no obvious gaps; agents can manage the entire lifecycle from setup to execution to oversight.

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

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/zbrdc/delia'

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