Skip to main content
Glama

Promptzilla

npm verify license

An MCP server built from the five prompt-engineering skills in skills/. It exposes skill instructions as tools, prompts and resources, and provides a durable controller for the Metapod → Judge Dredd → Brian Spillner optimization loop — locally over stdio, or self-hosted on Cloudflare Workers.

The connected AI client executes the skills. Standalone tools return instructions and input packets; they do not secretly call an LLM. Pipeline tools track isolated worker dispatches, validate returned output, enforce loop limits, and persist artifacts. No API key or model-provider account is required.

Requires Node.js 22.12+ (node --version). Then add Promptzilla to your MCP client:

{
  "mcpServers": {
    "promptzilla": {
      "command": "npx",
      "args": ["-y", "promptzilla"]
    }
  }
}

Client-specific setup:

Client

How to add

Claude Code

claude mcp add promptzilla -- npx -y promptzilla

Claude Desktop

Settings → Developer → edit claude_desktop_config.json, merge the JSON above

Cursor

Settings → MCP → edit mcp.json, merge the JSON above

Any MCP client

Command npx, args -y promptzilla, stdio transport

A ready-to-merge configuration is in examples/mcp.json. Restart or reconnect your client, then confirm it lists 13 tools, 5 prompts and the promptzilla:// resources.

Validate any time without a client:

npx -y promptzilla --validate     # "Validated 5 skills and 9 source assets."
npx -y promptzilla --version

Pipeline runs are stored in ~/.promptzilla-mcp/runs by default. Updating is just re-running with the latest tag:

npx -y promptzilla@latest --validate

Agent-assisted install: this repo ships an agent skill at agent-skills/promptzilla-setup/SKILL.md. Copy it into your agent's skills directory (e.g. ~/.claude/skills/promptzilla-setup/) and ask the agent to "install Promptzilla" — it walks through Node checks, client configuration, and optional Cloudflare self-hosting.

Options

Option

Environment variable

Default

--skills-dir PATH

PROMPTZILLA_SKILLS_DIR

Bundled skills/ inside the package

--runs-dir PATH

PROMPTZILLA_RUNS_DIR

~/.promptzilla-mcp/runs

--validate

—

Validate catalog and exit

--help, --version

—

Print and exit

Flags take precedence over environment variables. Relative override paths resolve against the launching process's working directory. The bundled skills work from any directory. Skill edits require a server restart; existing runs pin the stage skill instructions they started with.

Related MCP server: SoloFlow

From source

git clone https://github.com/andymccutcheon/promptzilla.git
cd promptzilla
npm ci
npm run build
node dist/cli.js --validate
npm start   # stdio server; point your client at `node <repo>/dist/cli.js`

Python 3 is needed only to test the original Python helper scripts; the MCP server never launches Python or a shell.

Self-host on Cloudflare Workers (optional)

Promptzilla can also run as a private, authenticated HTTP MCP server on Cloudflare Workers with SQLite-backed Durable Object storage — no database or model API needed. See CLOUDFLARE.md for architecture, deployment, persistence and credential rotation. Quick path:

npm ci
npm run check
npm run worker:secrets     # generates a private client credential locally
npm run worker:deploy      # builds and deploys with the cf CLI (must be logged in)
npm run worker:verify -- https://<your-worker>.<your-subdomain>.workers.dev/mcp

Tools

Tool

Required arguments

Behavior

list_skills

none

Compact catalog

search_skills

query

Ranked keyword discovery; optional limit

get_skill

name

Full instruction packet

tasker

task

Prepare execution-ready task optimization

metapod

request

Prepare System + Task Prompt generation

judge_dredd

prompt

Prepare evaluation; optional fidelity_source, earlier_scorecards, priorities

brian_spillner

prompt, scorecard

Prepare complete rewrite; optional priorities

prompt_pipeline

mode, input

Create run; optional priorities

pipeline_status

run_id

Read history, artifact URIs and next dispatch

pipeline_submit

run_id, dispatch_id, execution_id, fresh_context, output

Validate output and advance/retry

pipeline_pause

run_id, reason

Pause current worker stage for a decision/blocker

pipeline_resume

run_id, decision

Resume the saved stage with the user's actual answer

pipeline_apply_fixes

run_id, fixes

Apply Judge-authorized exact old/new pairs, then request diff confirmation

Tools return readable JSON in content and the same object in structuredContent. Invalid input or operation failures return isError: true. Each tool advertises whether it is read-only; no tool deletes files or runs arbitrary code. Text inputs are bounded at 200,000 characters. Scorecards are validated for structure and consistency, not semantic truth, completeness of evidence or model quality.

Prompts and resources

Five MCP prompts use the source skill names: tasker, metapod, judge-dredd, brian-spillner, prompt-pipeline. All take input; Brian also requires scorecard. Optional string arguments are fidelity_source, priorities and (for other skills) scorecard. The skill instructions and JSON-encoded caller data are separate messages. The prompt-pipeline prompt supplies the orchestration instructions; use the pipeline tools below for durable run tracking.

  • promptzilla://catalog — skills and supporting-asset inventory.

  • promptzilla://skills/metapod — exact original SKILL.md, including YAML.

  • promptzilla://assets/prompt-pipeline/scripts/stage_control.py — original helper, read-only; supporting documents and all skill files are also listed.

  • promptzilla://runs/{run_id}/{file} — immutable artifacts; use the exact URIs returned by the tools. This template is discoverable through resources/templates/list; run files are not globally enumerated.

Execute a pipeline end to end

Tell your MCP-enabled agent:

Use Promptzilla to create and polish a prompt for a meeting-notes summarizer. Start a Full run, execute every dispatch in a fresh isolated worker, show each stage's output, submit it, and continue until STOP, a user decision, or the cap.

For an existing prompt, use mode: "optimize-only" and pass its exact text. The server cannot create isolated AI workers itself. A host without fresh-context workers must pause with a blocker; changing the worker ID does not create isolation. Unique IDs and fresh_context: true are recorded attestations, not a technical sandbox or proof of separate model execution.

Protocol flow

  1. Call prompt_pipeline:

    { "mode": "full", "input": "Create a prompt for a meeting-notes bot" }
  2. Read dispatch.instructions and dispatch.input. Run that skill in a fresh worker with no earlier worker conversation. Give it only this packet. Do not send the entire run or other skill files to the worker.

  3. Show the worker output to the user, then call pipeline_submit:

    {
      "run_id": "<id from start>",
      "dispatch_id": "<current dispatch.id>",
      "execution_id": "<unique actual worker/context ID>",
      "fresh_context": true,
      "output": "<worker's exact output text>"
    }
  4. Repeat with the returned dispatch. Each attempt needs a new context/ID. A rejected output is retained and gets one retry; the second rejection blocks the run. Stale dispatches and reused worker IDs are rejected.

  5. At paused, ask the user the actual question. Use pipeline_resume with their answer; do not manufacture an answer. pipeline_pause also handles unresolved user choices or unavailable isolated workers during any normal stage. It preserves the current stage and remaining retry budget.

  6. At completed, show final.text, score history, DEFERRED items and unresolved placeholders. At capped or blocked, a best scored candidate may be exported as provisional, with approved: false.

Full runs start with Metapod. Optimize-only runs save 00-original.md unchanged and start with Judge. After CONTINUE, Brian rewrites and Judge re-scores the exact BODY, without Brian's checklist. DEFERRED items are passed separately. Pass 1 counts toward the four-round maximum. Non-improvement after two Brian rewrites (Judge pass 3) pauses for the user's decision. Only Judge's valid STOP at 9–10 approves the scored input; the server never invents scores or changes a verdict.

Stage output contracts

  • Metapod: exact === SYSTEM PROMPT === and === TASK PROMPT === markers, all 11 System headings and all 4 Task headings from the original skill.

  • Judge: plain Section Ratings, section lines like - Clarity: 8/10 — contains "notes"., one Overall Rating: 8/10 — reason, one Verdict: CONTINUE, and Recommendations with sequential numbered recs (3–5 for CONTINUE; STOP may have fewer). STOP iff overall >=9.

  • Brian: exactly one <!-- BEGIN BODY --> before one <!-- END BODY -->, nonempty complete prompt between them, followed by Rec-application checklist with a line for every rec: 1. APPLIED — where or 1. DEFERRED — reason. Interior whitespace, Unicode, trailing spaces and CRLFs are preserved.

  • Diff confirmation: exactly one 1. PASS — reason or 1. FAIL — reason line for each proposed replacement. Any FAIL blocks approval.

Structural acceptance does not verify that a rewrite preserves all facts or implements its recommendations. Those are explicit worker/Judge duties from the source skills. Pipeline dispatches retain the source's growth guidance (about 15% unless recs require more), overriding Brian's standalone 750-token limit.

Exact fixes after STOP

Fixes are explicit, never automatically inferred from a scorecard:

{
  "run_id": "<completed run id>",
  "fixes": [{ "old": "notes", "new": "meeting notes" }]
}

Call pipeline_apply_fixes only for changes the user selected or Judge designated for application. Each pair must match a quoted "old" → "new" or "old" -> "new" pair in a Judge recommendation, and each old string must occur exactly once. All fixes succeed or none are written. The immutable 05-final.md is retained; the new 05-final-fixed.md is unapproved until a fresh Judge confirms the diff. Submit that confirmation through pipeline_submit like other stages. The host is responsible for distinguishing required, optional and user-selected fixes.

Persistence and recovery

Each run lives at <runs-dir>/<UUID>/ (default ~/.promptzilla-mcp/runs/<UUID>/) with private directory/file permissions:

  • run.json: canonical state, pinned skill sources, history, provenance and dispatch briefs, plus artifact text for recovery.

  • 00-original.md (optimize-only) or 00-request.md (Full).

  • 01-metapod.md, 02-judge-pass1.md, 03-brian-rewrite.md, 04-judge-pass2.md, then letter-suffixed later stages.

  • -retry.md stage files preserve retries and rejected outputs.

  • 05-final.md, optional 05-final-fixed.md, 06-judge-confirmation.md, or 05-provisional.md at a cap/blocker with a scored candidate.

Use pipeline_status with the UUID to resume after a server restart. Never edit stage files manually: changed artifacts are detected, missing derived files are reconstructed from run.json. Atomic state replacement is the commit point; per-run filesystem locks prevent two processes from advancing the same run. If a process is killed while holding .lock, verify no process is still using that run before removing that one stale lock. Uncommitted .state-*.tmp files may be discarded after stopping the process. A successful MCP response confirms the canonical state and derived artifacts were saved.

Catalog assets and run artifacts are allowlisted; arbitrary paths, symlinks and oversized/non-UTF-8 files are rejected. The configured skills/runs roots and their parent directories must be trusted local directories. This is a single-user stdio service with filesystem permissions as its access boundary. Run data stays on disk until you remove it; it can contain your prompt text. The server itself does not send prompt data to external services.

Test and package

npm run check
npm audit
npm pack --dry-run
npm run test:package

check compiles TypeScript, runs unit/integration/real-stdio-client tests with

=80% coverage thresholds, and tests the unchanged Python helpers. Tests include both modes, STOP/cap/pause, retries, isolation packet boundaries, exact fixes, concurrent submissions, restarts, file recovery, tampering, symlinks and invalid inputs. Stage fixtures are authored deterministic test data, not live model evaluations or proof of prompt quality. CLI tests cover actual subprocess startup, help/version, configuration precedence and arbitrary working directories. CI runs on Node 22, 24 and 26 on Linux; results are recorded in TEST-RESULTS.md.

The suite also runs a real Workers runtime with SQLite-backed Durable Objects: authenticated HTTP MCP, per-owner isolation, simultaneous submissions, workflow caps/retries, exact-fix confirmation, and a multi-megabyte Unicode run surviving a full runtime restart. npm run test:worker-types checks the Worker/config types. The authentication and shared pipeline logic are measured in-process; the other Worker-only modules are executed by workerd and are outside V8's coverage instrumentation in the Node test runner.

test:package builds an actual tarball, installs it in a clean temporary directory, verifies its bundled assets, and completes a real stdio fixture run through the installed entry point. The temporary installation is removed on exit.

Releases (maintainers)

The package publishes to npm as promptzilla. Manual publish: bump version in package.json, run npm run check, then npm publish --access public. Alternatively trigger the publish GitHub Actions workflow, which runs the full check and publishes with provenance using an NPM_TOKEN repository secret. Users update with npx -y promptzilla@latest.

The original source material is kept under skills/; server code is under src/; Worker code is under worker/. The full implementation plan and acceptance criteria are in PLAN.md.

Available Tools

13 tools
brian_spillnerC
Read-onlyIdempotent

Prepare Brian Spillner to rewrite a prompt using a numbered scorecard. Host executes the packet.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
scorecardYes
prioritiesNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered and nothing here contradicts it ('prepare' is consistent with a read-only staging step). The description adds one genuinely useful behavioral fact: the tool produces a packet that the host, not this tool, executes. However it never describes what the packet contains or what the caller receives back.

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?

Two short sentences with no filler and the main action front-loaded. It is tight, though the second sentence is cryptic enough that its brevity costs more clarity than it saves.

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?

With no output schema and no annotation detail about returns, the description is the only source for what happens after invocation, and it leaves the core mechanism ('Host executes the packet') unexplained. An agent cannot tell whether it gets a rewritten prompt, an instruction set, or a status back, which is a serious gap for a tool whose entire value is a staged rewrite.

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

Parameters3/5

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

Schema description coverage is 0% across three string parameters, so the description must carry the load. It loosely maps 'prompt' (the text to rewrite) and hints that the scorecard is 'numbered', which is format info the schema lacks, but 'priorities' is never mentioned and no input constraints or expectations are given.

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 names an action ('Prepare ... to rewrite a prompt using a numbered scorecard') but 'Brian Spillner' is an unexplained persona and 'Host executes the packet' muddies whether this tool performs the rewrite or just stages it. It does not differentiate itself from siblings like prompt_pipeline or tasker, so an agent cannot confidently pick it over them.

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?

There is no statement of when to use this tool, when not to, or which sibling (prompt_pipeline, tasker, metapod) is the alternative. 'Host executes the packet' hints at a two-stage flow but never tells the agent where this tool fits in it.

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

get_skillC
Read-onlyIdempotent

Load exact skill instructions and metadata for host execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds little beyond that — 'for host execution' hints at downstream use, but it does not disclose behavior for an unknown/invalid name, error modes, or the shape of the returned instructions.

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?

A single front-loaded sentence with no wasted words. It is efficient, though the trailing phrase 'for host execution' is slightly opaque rather than informative.

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 read-only lookup with no output schema, the description covers the core action adequately and the annotations cover safety. It still omits the parameter's expected format and failure behavior, which are the main gaps an agent would hit in practice.

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% and the single 'name' parameter is never mentioned in the description. There is no guidance on whether it expects a skill name, slug, or path, or on case sensitivity — the agent must guess from the tool name alone.

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 states a specific verb and resource: 'Load exact skill instructions and metadata.' An agent can tell this retrieves a skill's content. However, it does not differentiate itself from the sibling tools list_skills and search_skills, which also operate on skills.

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?

There is no statement of when to use this tool versus list_skills or search_skills, no prerequisite (e.g., call search_skills first to obtain a valid name), and no mentioned alternatives or exclusions. Usage must be inferred entirely from the name.

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

judge_dreddB
Read-onlyIdempotent

Prepare a fresh Judge Dredd evaluation. Returns skill instructions plus caller-supplied prompt data, not a computed score.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYes
prioritiesNo
fidelity_sourceNo
earlier_scorecardsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description nonetheless adds valuable behavioral context that the schema cannot convey: the return payload is skill instructions plus caller-supplied prompt data, not a computed score. It still omits what the caller is expected to do with that payload.

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?

Two short sentences with no filler, and the key negative clarification ('not a computed score') is front-loaded where an agent will read it.

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?

With 4 parameters at 0% schema coverage and no output schema, the definition should explain each input and the expected follow-up workflow. It resolves the return-value question but leaves three of four parameters entirely undocumented, which is not enough for an agent to invoke this correctly.

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% for four parameters, so the description must carry the explanation and it largely does not. Only the vague phrase 'caller-supplied prompt data' hints at the inputs; priorities, fidelity_source, and earlier_scorecards are never mentioned or explained.

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?

States a specific verb ('Prepare') and resource ('Judge Dredd evaluation'), and adds the unusual clarification that it returns skill instructions plus prompt data rather than a score. That distinguishes it from a scoring/computation tool, but it does not differentiate it from any named sibling such as get_skill or prompt_pipeline.

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 word 'Prepare' and the phrase 'not a computed score' weakly imply this is a setup step rather than the evaluation itself, but there is no explicit when-to-use, no prerequisites, and no mention of alternatives among the skill/pipeline siblings.

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

list_skillsB
Read-onlyIdempotent

List all available prompt-engineering skills.

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?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is fully covered structurally. The description adds nothing beyond that — no mention of result ordering, completeness limits, or pagination behavior for what is presumably a list endpoint.

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?

A single front-loaded sentence with no filler or redundancy. It is tightly sized for the operation, though it is arguably a touch too terse to carry the sibling-routing burden.

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 trivial zero-argument, read-only tool with no output schema, the description is close to sufficient but omits what a skill entry contains and how this differs from search_skills/get_skill, which is exactly the information an agent needs to choose correctly among the three.

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

Parameters4/5

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

The schema has zero parameters, so the baseline is 4; there is no parameter meaning for the description to add. The statement that it returns all skills is consistent with the empty input schema.

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

Purpose4/5

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

Clear verb+resource ('List all available prompt-engineering skills') with a scope qualifier ('all available') that hints at unfiltered enumeration. However, it never distinguishes itself from the close siblings search_skills and get_skill, leaving the agent to infer the difference.

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 word 'all' loosely implies the unfiltered-enumeration case, but there is no explicit when-to-use, no when-not-to-use, and no named alternative despite search_skills and get_skill sitting right next to it. The agent gets essentially no routing guidance.

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

metapodC
Read-onlyIdempotent

Prepare Metapod to turn a raw request into System and Task Prompts. Host executes the returned packet.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description usefully adds that the host — not this tool — executes the returned packet, which is consistent with readOnlyHint. However, it says nothing about what the packet contains, latency, or how the request is interpreted.

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?

Two short sentences, the transformation outcome is front-loaded, and there is no filler. It is efficient, though the opening meta-phrasing is slightly awkward.

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?

With no output schema, an opaque tool name, an undocumented sole parameter, and no sibling differentiation among eleven related tools, the definition omits too much for an agent to confidently select and invoke it.

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% for the single required 'request' parameter, so the description carries the burden. It only restates it as a 'raw request' without saying what form that takes (natural language? structured? size/format expectations), adding almost nothing beyond the schema's maxLength=200000.

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 names the transformation (a request into System and Task Prompts), so the verb+output are identifiable, but 'Prepare Metapod' is self-referential and opaque — it never says what Metapod is or how it differs from prompt-related siblings like tasker, prompt_pipeline, or brian_spillner.

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?

There is no guidance on when to call this versus the many prompt/pipeline siblings, no prerequisites, and no exclusions. The agent is left to infer the triggering condition from the phrase 'raw request' alone.

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

pipeline_apply_fixesA

Apply explicit Judge-authorized exact replacements to a STOP final. Preserves original final; requires fresh diff-only confirmation before approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixesYes
run_idYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations mark this as a write (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds genuinely new context: the original final is preserved (consistent with destructiveHint=false) and a fresh diff-only confirmation is required before approval. That workflow constraint is not derivable from any structured field. It still doesn't say what happens when an 'old' string is not found or when the run isn't in STOP state.

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?

Two sentences, no filler, with the core action front-loaded and the safety constraint second. Dense with domain terms but every clause carries information.

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 non-idempotent, two-parameter mutation tool with no output schema, this covers the essentials: authorization source, target artifact, preservation guarantee, and confirmation gate. It omits error/rejection semantics and the batch-size limit, leaving meaningful gaps for an agent orchestrating a pipeline run.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load. It does convey that replacements are exact old-string matches, which explains the old/new pair semantics and implies literal matching rather than regex. But it says nothing about the 1–10 item cap on 'fixes', the run_id format, or failure behavior for unmatched strings.

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 verb+resource is specific: 'Apply explicit Judge-authorized exact replacements to a STOP final.' It identifies the operation on a distinct artifact state ('STOP final') within the pipeline family. It stops short of naming a sibling to distinguish it from, and the domain jargon ('Judge-authorized', 'STOP final') assumes insider knowledge.

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 prerequisite is implied through 'Judge-authorized' and 'STOP final' — an agent can infer this runs only after a Judge verdict on a stopped run. However, there is no explicit when-to-use statement, no when-not-to-use, and no named alternative among siblings like pipeline_submit or pipeline_resume.

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

pipeline_pauseA

Pause a running stage for a real user decision or unavailable fresh workers. Preserve the pending stage for resume.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYes
run_idYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the safety profile (not read-only, not destructive, not idempotent), so the bar is lower. The description adds real value by stating the pending stage is preserved for resume, i.e. the pause is reversible. However, it omits what happens to in-flight work or a double-pause, which matters given idempotentHint=false.

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?

Two short sentences, front-loaded with the action and its conditions, and the preservation guarantee placed second. Nothing is redundant or padding.

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?

A non-destructive mutation with no output schema and zero parameter documentation needs more than two sentences. The reversibility guarantee is useful, but idempotency behavior, failure modes, and the semantics of reason are left uncovered for an agent to guess.

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% and the description explains neither parameter. run_id is self-evident, but reason (a free-text field with a 200k maxLength) gets no guidance on expected content or granularity, even though the stated pause conditions hint at what belongs there.

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?

Specific verb+resource ("Pause a running stage") that an agent can place immediately against siblings like pipeline_resume and pipeline_status. Minor ambiguity remains between pausing a stage versus the whole run, since the sibling family is named pipeline_*, and no sibling is named explicitly.

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

Usage Guidelines4/5

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

Gives concrete triggering conditions: "for a real user decision or unavailable fresh workers," which tells the agent when pausing is the right move. It also implies the complement (resume) but states no exclusions, such as when not to pause or what to do instead for non-stage failures.

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

pipeline_resumeB

Resume a paused run using the actual user decision. Never invent an answer or bypass the four-round cap.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes
decisionYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare the write profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, closed-world). The description adds the "actual user decision" and "four-round cap" context, but does not explain what resuming does to run state or what the cap means, so it adds only modest context beyond the annotations.

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

Conciseness5/5

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

Two tight sentences with the primary action front-loaded and no filler; the guardrail follows the action, which is the right order.

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?

For a non-idempotent mutation with no output schema and 0% parameter coverage, the description should explain the decision payload, state transition, and the four-round cap it references. It leaves all of these undefined.

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% for both parameters. The description says the decision must be the "actual user decision," which gives some meaning for `decision`, but explains nothing about the `run_id` UUID or the decision's expected format/content. It does not compensate for the coverage gap.

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?

States a specific verb (resume) and resource (a paused run), which cleanly distinguishes it from the sibling pipeline_pause. It does not name an alternative sibling explicitly, so it falls just short of the top mark.

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?

"Resume a paused run" implies the precondition (the run must be paused) and the guardrail about not inventing an answer hints at how the decision should be sourced. However there is no explicit when-to-use/when-not or reference to pipeline_status / pipeline_apply_fixes as alternatives.

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

pipeline_statusB
Read-onlyIdempotent

Read run status, score history, artifacts and the active dispatch.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the useful fact that the response bundles status, score history, artifacts, and active dispatch — helpful since there is no output schema — but says nothing about behavior for an unknown run_id or how 'active dispatch' is scoped.

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?

A single front-loaded sentence with no filler; the verb and the returned artifacts come first. It is tight, though terse enough that it leaves gaps rather than being optimally informative.

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 read-only status tool with full annotation coverage and no output schema, disclosing the returned sections largely suffices. However, the sole required parameter is undocumented in both schema and description, so the definition is only minimally complete.

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% for the single required run_id parameter, and the description never mentions it. The UUID format/pattern in the schema implies a run identifier, but the description contributes no meaning beyond that.

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?

States a specific verb (Read) and enumerates the resources returned: run status, score history, artifacts, and the active dispatch. That clearly separates it from pipeline_submit/pause/resume/apply_fixes, though it never explicitly names those siblings.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the pipeline_* siblings. The agent must infer from the name alone that this is the polling/inspection tool for an existing run.

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

pipeline_submitA

Submit exactly one isolated worker output. Validate and persist it, then advance or retry the expected stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputYes
run_idYes
dispatch_idYes
execution_idYes
fresh_contextYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-destructive, non-idempotent write. The description adds real value beyond them by disclosing the side-effect chain: the output is validated, persisted, and then the expected stage is advanced or retried. It does not say what happens on validation failure or what permissions are required, so it is not exhaustive.

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?

Two short sentences with no filler; the core action and the resulting state transition are front-loaded. Every clause carries information.

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 five-required-parameter mutation with no output schema, the description covers the write effect but leaves the three opaque identifiers and fresh_context unexplained, and does not point to the pipeline_status/prompt_pipeline calls that presumably produce run_id and dispatch_id. Adequate but with clear gaps.

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% across five required parameters, and the schema supplies only types and UUID formats. The description touches only the 'output' parameter ('isolated worker output') and says nothing about run_id, dispatch_id, execution_id, or fresh_context, nor where those identifiers come from. It does not compensate for the coverage gap.

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?

States a specific verb and resource ('submit... worker output') plus a scope constraint ('exactly one isolated'). An agent can distinguish it from prompt_pipeline and pipeline_status without opening a schema, though it never names those siblings explicitly.

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 phrase 'submit exactly one isolated worker output' implies the usage context (one worker result per call) and the pipeline context, but there is no explicit when-to-use / when-not-to-use statement or reference to alternatives like pipeline_status or prompt_pipeline. Usage is only inferred.

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

prompt_pipelineA

Start a durable Full (idea → prompt) or optimize-only (existing prompt) run. Returns the next isolated-worker dispatch; the host executes it.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
inputYes
prioritiesNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent, closed-world write. The description usefully adds beyond that: the run is 'durable', and the call returns a 'next isolated-worker dispatch' that 'the host executes' — a non-obvious async/dispatch contract. It stops short of saying what happens on re-invocation or how the run is later resumed/inspected.

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?

Two sentences, zero filler, front-loaded with the action and its two variants, then the return/dispatch contract. Nothing redundant with the name or schema.

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?

With no output schema, the description correctly explains the return value (a worker dispatch executed by the host), which is the key missing structured information. But for a durable, stateful run tool surrounded by pipeline_status/submit/pause/resume siblings, it omits how the run is tracked afterward and leaves 'priorities' unexplained.

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

Parameters3/5

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

Schema description coverage is 0% across 3 params, so the description must carry the load. It does clarify mode (naming both enum values) and gives strong semantic framing for 'input' (an idea for full, an existing prompt for optimize-only), but the third parameter 'priorities' is never mentioned, leaving a gap.

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?

States a specific verb ('Start') and resource ('run') and enumerates the two modes with their inputs ('Full (idea → prompt)' vs 'optimize-only (existing prompt)'), so the agent knows exactly what happens. It does not, however, distinguish itself from close siblings like pipeline_submit or pipeline_status, so the agent must infer the split.

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 parenthetical glosses for each mode implicitly tell the agent which mode to pick based on whether it has an idea or an existing prompt. There is no explicit when-to-use vs when-not guidance against the other pipeline_* siblings, so usage is only implied.

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

search_skillsB
Read-onlyIdempotent

Keyword-search skill names and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that both names and descriptions are matched, which is useful, but says nothing about ranking, matching behavior, or result format. With annotations carrying the safety burden, a 3 is appropriate.

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?

A single front-loaded sentence with zero filler. It is appropriately sized for the tool, though its brevity doubles as under-specification captured in other dimensions.

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?

No output schema exists, so return values need not be explained. However, for a tool with an undocumented 'limit' parameter and undisclosed pagination/matching behavior, the definition is only minimally complete, though annotations reduce the behavioral burden.

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%, so the description must compensate. It implies the query string targets skill names and descriptions, but gives no semantics for the 'limit' parameter (default 10, max 50) or the query length constraint. Most parameter meaning is left undocumented.

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?

States a specific verb+resource: 'Keyword-search skill names and descriptions.' The 'keyword-search' framing distinguishes it from list_skills and get_skill, but it never names those siblings explicitly, so differentiation is implied rather than stated.

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 guidance and no alternatives named. The description does not say when to prefer this over list_skills or get_skill, nor any exclusions or prerequisites. The agent must infer usage from the verb alone.

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

taskerC
Read-onlyIdempotent

Prepare Tasker to optimize a rough task assignment. Host executes the returned skill; underlying task is never performed.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYes

TDQS

C2.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world. The description adds the important fact that the host executes the returned skill and the underlying task is never performed, which goes beyond the safety annotations and clarifies the tool's non-execution behavior.

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?

Two short sentences, no filler. However, the first sentence is confusing and not clearly front-loaded, but it is appropriately sized.

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?

With no output schema, the description should explain what is returned. It mentions 'returned skill' but does not describe its form or how the host should use it, nor does it clarify what 'underlying task' means. For a one-parameter tool the coverage is minimal but still leaves gaps for correct 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?

Schema coverage is 0% and the only parameter 'task' has no description. The description hints that the input is a 'rough task assignment' but does not specify format, content, or constraints, leaving the 200,000-character string parameter largely unexplained.

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

Purpose2/5

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

The description says 'Prepare Tasker to optimize a rough task assignment,' which largely restates the tool name 'tasker' and does not define a specific verb+resource that an agent can distinguish from siblings like prompt_pipeline or get_skill. The added 'optimize a rough task assignment' is vague and does not clarify what the tool actually produces or how it differs from other skill-related tools.

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 guidance, no prerequisites, and no mention of alternatives. The agent is left to infer whether this is appropriate for a given task versus using list_skills or prompt_pipeline.

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. 13 tool updatesv1.0.0
    • First observedbrian_spillner
    • First observedget_skill
    • First observedjudge_dredd
    • First observedlist_skills
    • First observedmetapod
    • First observedpipeline_apply_fixes
    • First observedpipeline_pause
    • First observedpipeline_resume
    • First observedpipeline_status
    • First observedpipeline_submit
    • First observedprompt_pipeline
    • First observedsearch_skills
    • First observedtasker

TDQS

B3.1/5.0

Scored across 13 tools

Disambiguation3/5

The pipeline_* tools are clearly differentiated by distinct verbs (status, submit, pause, resume, apply_fixes), and the skill discovery trio (list/search/get) is distinct. However, the four persona tools (tasker, metapod, judge_dredd, brian_spillner) share an identical 'prepare X to return skill instructions' behavior, and get_skill also returns skill instructions, so boundaries must be inferred from descriptions rather than names.

Naming Consistency3/5

Two coherent families exist: verb_noun snake_case (list_skills, search_skills, get_skill) and noun-prefixed pipeline_* operations. But the four single-word persona names (tasker, metapod, judge_dredd, brian_spillner) break any verb_noun pattern, making the overall set mixed rather than predictable.

Tool Count4/5

13 tools is well within a reasonable range for a prompt-engineering pipeline with skill discovery, skill wrappers, and a full run lifecycle. Each tool appears to earn its place, though the four persona wrappers could arguably be consolidated into a single parameterized tool.

Completeness4/5

The surface covers discovery (list/search/get), execution packaging (persona tools), and a durable pipeline lifecycle (start, status, submit, pause, resume, apply_fixes). Minor gaps exist—no explicit cancel/delete for runs or a listing of past runs—but core workflows are covered without obvious dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    A remote MCP server that ships procedural knowledge skills to AI agents, enabling methodologies like brainstorm-first and plan-before-action. Hosted on Cloudflare Workers, it provides resources, prompts, and tools for skill management.
    -
  • F
    license
    B
    quality
    C
    maintenance
    Connects an LLM to specialized MCP servers via stdio, enabling authenticated GitHub repository, issue, file, and code operations alongside TF-IDF retrieval over employee PDF records and QA test-case generation and result validation. It exposes tools, a read-only resource, and reusable prompt templates so a client can discover and orchestrate multiple capabilities in one workflow.
    3
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI tools to uniformly discover, inspect, and call tools, prompts, and resources from multiple upstream MCP servers through a small set of fixed MCP tools, over stdio or HTTP.
    2
    MIT