Skip to main content
Glama

Local Worker MCP

Client-agnostic local MCP. Frontier plans, delegates, and reviews. Local does the heavy, mechanical, and verifiable work.

The goal is to reduce token consumption from paid AIs without dumping raw content into their context.

Codex / Claude / Gemini / Grok
              │
              ▼
       Local Worker MCP
              │
       ┌──────┴───────────────┐
       ▼                      ▼
 Gemma 4 12B QAT          arquivos / PDF
 via Ollama               extração + evidências
       │
       ▼
 resultado compacto e verificável
       │
       ▼
 Frontier revisa

This does not replace the main AI and is not a model router. It is real task delegation.

LOCAL DISPONÍVEL?          NÃO
      │                     │
      ▼                     ▼
   DELEGA                NÃO INSISTE
      │                     │
      ▼                     ▼
   COMPRIME            FRONTIER ASSUME
      │
      ▼
 FRONTIER REVISA

Gemma is an optimization. It must never become a single point of failure.

Principle

Delegate when the task is mechanical, repetitive, verifiable, or context-intensive: PDF, logs, CSV, code, extraction, classification, summarization.

Keep on the frontier: architectural decisions, security, critical changes, subjective judgment, ambiguous requirements.

If the local worker is offline, the frontier continues. The MCP returns unavailable quickly and recommends a fallback. The client can log:

Worker local indisponível; executei diretamente.

Does not require user intervention.

Related MCP server: ollama-handoff

Requirements

  • Python 3.10+

  • Ollama on the same PC or another on the LAN

  • A local model (recommended: Gemma 4 12B QAT)

Installation

git clone https://github.com/CaioAllgayer/Local-Worker-MCP.git
cd Local-Worker-MCP
python -m pip install -e ".[dev]"
copy .env.example .env

Ollama + Gemma

  1. Install and start Ollama.

  2. Download the model. The name is not hardcoded — use the actual name from your ollama list:

ollama list
ollama pull <nome-real-do-gemma>
  1. If LOCAL_LLM_MODEL is empty, the worker tries to detect a model whose name contains gemma. Otherwise, it uses the first listed model.

  2. Test the endpoint:

curl http://127.0.0.1:11434/api/tags
local-worker status
  1. Start the MCP:

local-worker-mcp

Same PC

LOCAL_LLM_PROVIDER=ollama
LOCAL_LLM_BASE_URL=http://127.0.0.1:11434
LOCAL_LLM_MODEL=

local vs lan is detected by hostname. 127.0.0.1, localhost, and ::1 are local.

Laptop using the desktop

The worker does not assume localhost. The backend can be on another PC on the LAN.

On the laptop:

LOCAL_LLM_PROVIDER=ollama
LOCAL_LLM_BASE_URL=http://192.168.x.x:11434

Replace 192.168.x.x with the current IP of the desktop (ipconfig on Windows, ip a on Linux). There is no fixed IP in the project.

The behavior is the same: fail-fast, circuit breaker, cache, compression.

On the desktop, Ollama must accept connections from the LAN (OLLAMA_HOST=0.0.0.0 environment variable and firewall allowing port 11434).

OpenAI-compatible

LM Studio, llama.cpp server, vLLM, and similar:

LOCAL_LLM_PROVIDER=openai_compatible
LOCAL_LLM_BASE_URL=http://127.0.0.1:1234/v1
LOCAL_LLM_MODEL=...
LOCAL_LLM_API_KEY=

Fail-fast and circuit breaker

Defaults:

LOCAL_LLM_CONNECT_TIMEOUT_SECONDS=2
LOCAL_LLM_REQUEST_TIMEOUT_SECONDS=45
LOCAL_LLM_MAX_RETRIES=0
LOCAL_LLM_CIRCUIT_BREAKER_FAILURES=2
LOCAL_LLM_CIRCUIT_BREAKER_COOLDOWN_SECONDS=60

Connection refused does not retry. After N failures the circuit opens and subsequent calls return unavailable immediately. After the cooldown, one attempt is allowed.

{
  "status": "unavailable",
  "fallback_recommended": true,
  "reason": "Local LLM endpoint unreachable"
}

MCP Tools

Tool

Function

local_status

provider, endpoint, local/LAN, latency, model, circuit breaker, cache

delegate_task

generic task → compact JSON

delegate_batch

independent tasks in parallel (MAX_PARALLEL_WORKERS=4)

delegate_file

TXT, Markdown, CSV, JSON, code, logs

delegate_pdf

extraction by page, chunking, hierarchical synthesis, evidence

cache_stats

size, entries, hits, misses, hit rate, expired

cache_cleanup

GC now (TTL → not reused → LRU)

cache_clear

delete disposable entries

The raw file content does not need to enter the paid AI's context. The worker reads, compresses, and returns verifiable evidence (page, line, snippet).

Security

Default: SECURITY_MODE=READ_ONLY, ENABLE_SHELL=false.

SECURITY_MODE=READ_ONLY
ALLOWED_PATHS=C:\Projects,D:\Research
ENABLE_SHELL=false
  • READ_ONLY — read-only on authorized paths; write and shell blocked

  • WORKSPACE_WRITE — read/write on authorized paths; shell only if ENABLE_SHELL=true

  • FULL_LOCAL — more permissive; still blocks destructive commands

Path traversal is blocked. rm, del, format, etc. are refused.

Cache and logs

Persistent cache in ~/.local-worker-mcp/cache, self-cleaning:

CACHE_TTL_DAYS=30
CACHE_MAX_SIZE_GB=10
CACHE_CLEANUP_THRESHOLD_PERCENT=90
CACHE_TARGET_USAGE_PERCENT=80
CACHE_CLEANUP_INTERVAL_HOURS=6

Entries are disposable by default. persistent=true preserves important artifacts.

Logs rotate and expire:

LOG_RETENTION_DAYS=14
LOG_MAX_SIZE_MB=250

The log does not store the full file content.

Benchmark

local-worker benchmark arquivo.pdf

Output:

Arquivo: arquivo.pdf
Worker: gemma4:12b-qat
Backend: ollama
Endpoint: LAN/local
Tamanho: ...
Tokens originais estimados: ...
Tokens processados localmente: ...
Resultado para frontier: ...
Compressão: ...
Tempo: ...
Cache: HIT/MISS

Codex

~/.codex/config.toml or the client's JSON:

{
  "mcpServers": {
    "local-worker": {
      "command": "local-worker-mcp",
      "env": {
        "LOCAL_LLM_PROVIDER": "ollama",
        "LOCAL_LLM_BASE_URL": "http://127.0.0.1:11434",
        "ALLOWED_PATHS": "C:\\Projects"
      }
    }
  }
}

See examples/codex.json.

Claude Code

claude mcp add local-worker --scope user -- local-worker-mcp

Or paste examples/claude_code.json into ~/.claude.json.

In the project's CLAUDE.md / AGENTS.md, teach the policy:

Mechanical tasks and reading large files go to delegate_pdf / delegate_file / delegate_task. If local_status or the tool returns unavailable, execute directly and move on.

Other MCP clients

Any stdio client works. Generic example in examples/generic.json:

{
  "mcpServers": {
    "local-worker": {
      "command": "local-worker-mcp",
      "env": {
        "LOCAL_LLM_PROVIDER": "ollama",
        "LOCAL_LLM_BASE_URL": "http://127.0.0.1:11434"
      }
    }
  }
}

Examples

  • examples/pdf.md — long paper / PDF

  • examples/code.md — initial repository reading

  • examples/logs.md — error extraction

Tests

python -m pip install -e ".[dev]"
pytest
ruff check src tests

The suite does not depend on real Ollama/Gemma. Everything is mocked.

What is not included in this MVP

Windows GUI automation, Playwright, complex multi-agent, vector RAG, dashboard, Kubernetes, ML router.

The architecture leaves room for delegate_repo, delegate_git, delegate_browser, etc. in the next phase.

License

MIT.

Available Tools

8 tools
cache_cleanupA

Run cache garbage collection now (TTL, unused, then LRU).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full behavioral disclosure. It reveals the eviction strategy (TTL, unused, then LRU) but lacks details on side effects (e.g., blocking duration, performance impact, idempotency), leaving moderate gaps.

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 a single, front-loaded sentence with no superfluous words. Parenthetical details are efficiently placed, making it highly concise and structured.

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 simplicity (no parameters, no output schema), the description covers the main action and eviction order adequately. However, missing annotations or cautions about safety or frequency of use slightly reduce completeness, though the core functionality is well captured.

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 tool has zero parameters and the input schema is empty (vacuously 100% coverage). No parameter explanation is needed, and the description adds no confusion, so this dimension is optimal.

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 action ('Run cache garbage collection now') and elaborates on the eviction order ('TTL, unused, then LRU'), which makes the tool's purpose highly specific and distinguishable from siblings like 'cache_clear' or 'cache_stats'.

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 explicit guidance on when or when not to use this tool compared to alternatives. It only implies immediate execution but does not mention prerequisites, suitable scenarios, or exclusions.

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

cache_clearA

Delete disposable cache entries. Persistent artifacts stay unless include_persistent=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_persistentNo

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description adequately discloses the destructive behavior (deleting disposable entries) and the conditional inclusion of persistent artifacts. It does not mention potential side effects or authorization requirements, but for a simple cache-clear operation, the level of transparency is sufficient.

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 extremely concise with only two sentences, front-loading the action and key constraint. Every word serves a purpose, with no redundancy.

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 simplicity (single boolean parameter, no output schema), the description covers the core behavior and parameter effect. It does not describe return values or confirmatilon, but these are standard and not critical for selection in this context.

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 input schema has 0% description coverage, leaving the 'include_persistent' parameter undocumented. The description compensates by explaining that setting it to true includes persistent artifacts, adding meaningful context beyond the schema defaults.

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 deletes 'disposable cache entries' using the verb 'Delete' and specifies the resource. However, it does not explicitly differentiate from sibling 'cache_cleanup', which may have overlapping functionality, leaving some ambiguity.

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 context on when to use the 'include_persistent' parameter ('Persistent artifacts stay unless include_persistent=true'), but offers no guidance on when to use this tool versus related tools like cache_cleanup or cache_stats. No exclusions or alternatives are mentioned.

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

cache_statsB

Cache size, entry count, hits, misses, hit rate, and expired entries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It merely lists metrics without confirming that the tool is read-only, what side effects (if any) exist, or whether it performs any cache maintenance. The absence of any behavioral detail beyond a stat list provides minimal transparency.

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 a single, compact list of terms that directly conveys the tool's return fields. It is front-loaded with the core information and has no filler. However, it is a fragment rather than a full sentence, which slightly reduces structure clarity but does not harm comprehension.

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?

For a simple stats tool with no parameters and no output schema, the description conveys the available metrics but omits any statement of the tool's overall effect (e.g., 'returns' or 'displays') and any caveats. It adequately lists items for a minimal tool but lacks a complete sentence and usage context, leaving it just at the adequate threshold.

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 accepts zero parameters, so the input schema is empty. The description needs no parameter clarification, and the baseline for no parameters is 4. The description correctly focuses on the output content, which is the relevant information for invocation.

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 enumerates the specific statistical fields (cache size, entry count, hits, misses, hit rate, expired entries), making it clear the tool provides cache statistics. However, it lacks an explicit verb like 'retrieves' or 'returns', and it doesn't differentiate from sibling tools such as cache_cleanup or cache_clear, though its purpose is evident from the name and content.

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?

No guidance is provided on when to use this tool versus alternatives. The description does not state that this is for inspection as opposed to cache_cleanup or cache_clear, nor does it mention any preconditions or complementary tools. This leaves the agent without explicit selection criteria.

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

delegate_batchB

Run independent local tasks in parallel. One failure does not cancel the batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It usefully notes that one failure does not cancel the batch. However, it omits other critical behaviors such as how results are returned, whether tasks share state, or any execution limits, leaving significant gaps for a tool that manages parallelism.

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 extremely concise, using only two sentences. Every sentence provides distinct value: the first states the core purpose, the second adds a critical behavioral trait. No unnecessary words or redundancy.

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

Completeness2/5

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

Despite the tool's simple parameter set, the description is incomplete. It does not explain the return format, error propagation beyond non-cancellation, or any constraints on parallelism. With no output schema and no parameter descriptions, the agent lacks sufficient information to invoke the tool correctly in a complex workflow.

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

Parameters2/5

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

The input schema has 0% description coverage and the description does not explain the 'tasks' parameter beyond stating it runs tasks in parallel. It fails to clarify what each object in the array should contain (e.g., same fields as delegate_task input). This is a major omission that forces the agent to guess the parameter's structure.

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 runs tasks in parallel, using the verb 'Run' and resource 'independent local tasks.' It distinguishes from the sibling 'delegate_task' by emphasizing parallelism and independence. However, it does not explicitly define what constitutes a 'local task,' relying on the schema's generic array of objects, which slightly reduces specificity.

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 for parallel independent tasks, but it provides no explicit guidance on when to choose this tool over siblings like 'delegate_task' (single task) or 'delegate_file'/'delegate_pdf' (specialized tasks). The absence of when-not-to-use or alternative recommendations leaves the agent to infer context from tool names alone.

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

delegate_fileC

Have the local worker read a file (txt/md/csv/json/code/log) without loading it into frontier context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
objectiveYes
persistentNo
output_modeNostructured
force_refreshNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions reading a file without loading into frontier context, but omits critical behavioral details: the worker processes the file based on an 'objective' (not just reading), the output_mode parameter controls return format, and the 'persistent' and 'force_refresh' options affect caching. The agent learns little about what happens or what to expect.

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

Conciseness3/5

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

The description is a single sentence of 18 words, which is very concise. However, conciseness is achieved at the expense of essential information. While there is no wasted text, the description is under-specified and does not earn its place by being informative enough.

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

Completeness1/5

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

Given the tool has 5 parameters (including required ones), no output schema, and no annotations, the description is grossly incomplete. It fails to explain the tool's full behavior, parameter roles, return value, or caching semantics. The agent cannot safely invoke this tool without additional guessing.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description explains none of the five parameters. It does not mention that 'path' is the file location, 'objective' is the task, 'output_mode' controls output format, 'persistent' caches results, or 'force_refresh' bypasses cache. The agent must guess or rely on parameter names, which is insufficient for correct invocation.

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 verb 'read' and the resource 'a file (txt/md/csv/json/code/log)'. It also distinguishes from reading that loads into frontier context, and from sibling tools like delegate_pdf (different file type) and delegate_task/batch (task delegation). The purpose is specific and unambiguous.

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 hints at when to use (when you want to avoid loading into frontier context) but does not explicitly state when not to use or provide alternatives. It lacks guidance on comparing with sibling tools like delegate_task or cache tools. The advice is implicit, not actionable.

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

delegate_pdfC

Extract, chunk, and analyze a PDF locally. Returns compact findings with page evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
objectiveYes
persistentNo
output_modeNoanalysis
force_refreshNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'locally' (suggesting no network call) and 'returns compact findings with page evidence', but does not disclose whether the operation is read-only, destructive, requires permissions, or has side effects (e.g., caching). The term 'delegate' is ambiguous.

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 a single, short sentence with essential front-loaded information. Every word contributes to purpose and outcome. No filler or repetition.

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

Completeness2/5

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

Given the complexity (5 parameters, 0% schema coverage, no output schema, no annotations), the description is insufficient. It omits return format, side effects, error conditions, and parameter meanings. The tool appears non-trivial (analysis with caching) but the description does not enable proper invocation.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate but does not. It mentions 'extract, chunk, and analyze' but fails to map parameters (path, objective, persistent, output_mode, force_refresh) to these actions. The agent cannot infer how to set 'output_mode' to get different results or what 'persistent' means.

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 uses a specific verb ('Extract, chunk, and analyze') and resource ('PDF locally'), clearly stating what the tool does. It distinguishes itself from sibling tools like delegate_task or delegate_batch by focusing on PDF analysis, though it could be more explicit about how it differs from delegate_file.

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?

No when-to-use or when-not-to-use guidance is provided. The description does not mention alternatives or context for choosing this tool over siblings like delegate_file or delegate_task. The agent receives no help in deciding when to invoke this tool vs others.

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

delegate_taskC

Delegate a mechanical task to the local worker. Returns compact structured output.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNo
objectiveYes
persistentNo
force_refreshNo
expected_outputNo
max_output_tokensNo

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. It only says "Returns compact structured output" without explaining what happens (e.g., is this async? Does it block? Does it modify state? What about error cases?). The behavioral traits are severely under-specified.

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 very short (two senteces) and front-loaded with the action. It is concise, but this brevity comes at the cost of missing critical information.

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

Completeness1/5

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

Given the tool has 6 parameters (1 required), no output schema, no annotations, and sibling delegation tools, the description is incomplete. It provides almost no information about how to use the tool correctly or what the output format is.

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

Parameters2/5

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

Schema description coverage is 0%, meaning no parameters have descriptions. The description only mentions "compact structured output" but gives no insight into what the parameters mean, how they affect behavior, or any semantics beyond the schema names. For 6 parameters, this is insufficient.

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

Purpose3/5

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

The description states "Delegate a mechanical task to the local worker" which gives a verb and resource, but 'mechanical task' and 'local worker' are vague. It does not clearly distinguish itself from siblings like delegate_batch or delegate_file, which sound like similar delegation tools.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. With siblings like delegate_batch and delegate_file, the agent has no basis to choose between them. No when-to-use, when-not-to-use, or prerequisites are mentioned.

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

local_statusA

Check local worker health: provider, endpoint, model, circuit breaker, cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses what components are checked, which is transparent. However, it does not explicitly state whether the operation is read-only, has no side effects, or requires any authentication. A health check is likely safe, but the description does not confirm this.

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 a single sentence that front-loads the purpose ('Check local worker health') and then lists the components. Every word is functional; no redundant or extraneous information.

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 that there are no parameters and no output schema, the description is mostly complete. It informs the agent what the tool checks. However, it does not hint at the return format (e.g., a status object per component). For a health check tool, specifying the output structure would be beneficial, but the current description is acceptable.

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?

There are zero parameters, and schema coverage is 100%. The description adds value beyond the empty schema by listing the specific health aspects checked, which helps the agent understand what the tool inspects. No further parameter documentation is needed.

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 explicitly states the tool checks local worker health and lists specific components (provider, endpoint, model, circuit breaker, cache). This provides a clear verb-resource pair and distinguishes it from sibling tools like delegate_task or cache_stats, which have different purposes.

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?

No explicit guidance on when to use this tool versus alternatives. While the purpose is clear enough that an agent can infer it's for health checks, the description does not mention when to use it or when to prefer siblings (e.g., delegate_task for delegation, cache_stats for cache status). Usage is implied but not stated.

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. 8 tool updatesv0.1.0
    • First observedcache_cleanup
    • First observedcache_clear
    • First observedcache_stats
    • First observeddelegate_batch
    • First observeddelegate_file
    • First observeddelegate_pdf
    • First observeddelegate_task
    • First observedlocal_status

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: health check, task delegation, batch processing, file reading, PDF analysis, cache statistics, cleanup, and clearing. There is no overlap in functionality, making it easy for an agent to select the appropriate tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., local_status, delegate_task, cache_stats). The naming is predictable and clear, with verbs like 'delegate' and 'cache' used consistently to indicate the action and domain.

Tool Count4/5

With 8 tools, the count is appropriate for the server's purpose of managing a local worker and its cache. The scope is well-defined without being too thin or overly broad.

Completeness4/5

The tool surface covers the key operations: health checks, task delegation (including batch and file processing), and cache management (stats, cleanup, clear). A minor gap is the lack of a tool to update or cancel a delegated task, but the core workflows are well supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

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/CaioAllgayer/Local-Worker-MCP'

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