Skip to main content
Glama

Local Worker 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+

  • 同一PCまたはLAN内の別のPC上のOllama

  • ローカルモデル(推奨: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を前提としない。バックエンドはLAN内の別の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がLANからの接続を受け入れる必要がある(OLLAMA_HOST=0.0.0.0環境変数と、ポート11434を開放するファイアウォール)。

OpenAI互換

LM Studio、llama.cppサーバー、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を返す。クールダウン後、1回の試行が許可される。

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

MCPツール

ツール

機能

local_status

プロバイダー、エンドポイント、ローカル/LAN、レイテンシ、モデル、サーキットブレーカー、キャッシュ

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 — 許可されたパスへの読み取りのみ。書き込みとシェルはブロックされる。

  • WORKSPACE_WRITE — 許可されたパスへの読み取り/書き込み。シェルはENABLE_SHELL=trueの場合のみ。

  • 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