Skip to main content
Glama

本地工作器 MCP

本地MCP,客户端无关。前沿模型规划、委托和审查。本地执行繁重、机械且可验证的工作。

目标是减少付费AI的令牌消耗,而不将原始内容放入其上下文中。

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

这不替代主AI,也不是模型路由器。这是真正的工作委托。

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

Gemma是一种优化。它绝不能成为单点故障。

原则

当任务机械、重复、可验证或上下文密集时委托:PDF、日志、CSV、代码、提取、分类、摘要。

保留在前沿:架构决策、安全、关键变更、主观判断、模糊需求。

如果本地工作器离线,前沿继续运行。MCP快速返回unavailable并推荐回退。客户端可以记录:

Worker local indisponível; executei diretamente.

不需要用户干预。

Related MCP server: ollama-handoff

要求

  • Python 3.10+

  • Ollama 在同一PC或局域网另一台PC上

  • 一个本地模型(推荐:Gemma 4 12B QAT)

安装

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. 安装并启动Ollama。

  2. 下载模型。名称不是硬编码的——使用ollama list中的实际名称:

ollama list
ollama pull <nome-real-do-gemma>
  1. 如果LOCAL_LLM_MODEL为空,工作器尝试检测名称包含gemma的模型。否则,使用列表中的第一个模型。

  2. 测试端点:

curl http://127.0.0.1:11434/api/tags
local-worker status
  1. 启动MCP:

local-worker-mcp

同一PC

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

local与lan通过主机名检测。127.0.0.1、localhost和::1为本地。

笔记本使用桌面

工作器不假设localhost。后端可以在局域网的另一台PC上。

在笔记本上:

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

将192.168.x.x替换为桌面的实际IP(Windows上ipconfig,Linux上ip a)。项目中没有固定IP。

行为相同:快速失败、断路器、缓存、压缩。

在桌面上,Ollama需要接受局域网连接(变量OLLAMA_HOST=0.0.0.0,防火墙放行端口11434)。

OpenAI兼容

LM Studio、llama.cpp server、vLLM等:

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

快速失败和断路器

默认值:

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

连接被拒绝不进入重试。N次失败后,电路断开,后续调用立即返回unavailable。冷却后,允许一次尝试。

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

MCP工具

工具

功能

local_status

提供商、端点、本地/局域网、延迟、模型、断路器、缓存

delegate_task

通用任务 → 紧凑JSON

delegate_batch

并行独立任务(MAX_PARALLEL_WORKERS=4)

delegate_file

TXT、Markdown、CSV、JSON、代码、日志

delegate_pdf

按页提取、分块、层次综合、证据

cache_stats

大小、条目、命中、未命中、命中率、过期

cache_cleanup

立即GC(TTL → 不再使用 → LRU)

cache_clear

删除可丢弃条目

文件的原始内容不需要进入付费AI的上下文。工作器读取、压缩并返回可验证的证据(页、行、片段)。

安全

默认:SECURITY_MODE=READ_ONLY,ENABLE_SHELL=false。

SECURITY_MODE=READ_ONLY
ALLOWED_PATHS=C:\Projects,D:\Research
ENABLE_SHELL=false
  • READ_ONLY — 仅读取授权路径;写入和shell被阻止

  • WORKSPACE_WRITE — 在授权路径上读写;仅当ENABLE_SHELL=true时允许shell

  • FULL_LOCAL — 更宽松;仍阻止破坏性命令

路径遍历被阻止。rm、del、format等被拒绝。

缓存和日志

持久缓存位于~/.local-worker-mcp/cache,自动清理:

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

条目默认可丢弃。persistent=true保留重要工件。

日志轮转并过期:

LOG_RETENTION_DAYS=14
LOG_MAX_SIZE_MB=250

日志不保存文件的完整内容。

基准测试

local-worker benchmark arquivo.pdf

输出:

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或客户端的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"
      }
    }
  }
}

参见examples/codex.json。

Claude Code

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

或将examples/claude_code.json粘贴到~/.claude.json。

在项目的CLAUDE.md / AGENTS.md中,教导策略:

机械任务和大文件读取交给delegate_pdf / delegate_file / delegate_task。如果local_status或工具返回unavailable,直接执行并继续。

其他MCP客户端

任何stdio客户端都可以工作。通用示例在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/pdf.md — 论文/长PDF

  • examples/code.md — 仓库初始读取

  • examples/logs.md — 错误提取

测试

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

测试套件不依赖真实的Ollama/Gemma。全部模拟。

此MVP不包括的内容

Windows GUI自动化、Playwright、复杂多智能体、向量RAG、仪表板、Kubernetes、ML路由器。

架构为下一阶段的delegate_repo、delegate_git、delegate_browser等留出空间。

许可证

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.

  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

Scored across 8 tools

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers