Skill Steward MCP

io.github.ArenukvernPublished by GitHub account Arenukvernv0.7.1Updated Nov 14, 2026

Experimental read-only Steward MCP: list/inspect actions, doctor, explain (stdio).

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Read-only MCP front end to the Skill Steward CLI, letting an assistant list and inspect repo-local actions, run a contract doctor check, and explain blocked…

What you can do
  • List typed repo-local actions with their safety and effect summaries
  • Inspect one exact action contract before any execution
  • Run a doctor check of the local Steward contract without running actions
  • Explain blocked Steward JSON as next actions and artifact routes
  • Read-only only: no action execution over MCP
When to use it
Useful when a repository already uses Skill Steward and you want an assistant to read its declared actions, contracts and blocked benchmark results without running anything. It is an experimental, read-only surface, so it suits inspection and routing rather than automation.
Requirements
Runs as a local stdio process, either via the published OCI image (Docker) or the steward mcp command after installing the steward binary. The container is typically started with the working directory mounted read-only. No authentication, environment variables or headers are declared.
Before you install
Experimental and read-only by design; it does not execute actions, apply repairs or prove adoption, and its output should not be treated as a maturity verdict. The image is meant to be run against a mounted repository, so check what that mount exposes. The README's install path pipes a remote script into a shell, which you should review before running.

Installation

In SourceWeft

  1. Open Skill Steward MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

steward_cli

Bounded stewardship CLI for Skill Steward. Product CLIs live in their own repos — see ADR 0006.

Commands

The CLI is bounded by stewardship ownership, not by command count. Use these public jobs as the mental model; they are not aliases unless a command is shown below.

JobCommandsBoundary
Adoptadopt, install, update, uninstall, mapCreate or refresh repo-local Steward surfaces
Inspectdoctor, list, schema, actions, action, probeRead facts and declared contracts
Provevalidate, eval, evidence, benchmark, claim, blockedCheck exact claims without flattening proof levels
Repairaction-candidate, unknown-case, diagnoseReviewable routing toward future fixes; no unreviewed mutation
Compressecology, dogfood, protocol, bundle, brand-check, mcpRead-only routing, descriptor checks, or experimental harness support

Command stability tiers:

TierCommandsMeaning
Corevalidate, list, doctor, schema, actions, action, probeStable reader/checker surface for adopters and CI
Adoptionadopt, evidence, benchmark, claim, blockedClaim and adoption workflow surface; proof ceilings stay explicit
Experimentalecology, protocol, dogfood, diagnose, mcp, bundle, brand-check, action-candidate, unknown-case, observeUseful but still learning from dogfood and repeated cases
Maintainer/distributioneval, install, update, uninstall, mapStable for Skill Steward maintenance and pinned skill layers; not a product proof surface
CommandPurpose
steward doctor --jsonInspect the local Steward contract without running actions
steward ecology snapshot --jsonGather read-only repo ecology inventory for disposition review; not a maturity verdict
steward ecology route --jsonCompose ecology inventory into North Star dispositions and optional advisory lane candidates; not repair automation
steward dogfood status --jsonCompose current ledger and ecology routing facts; not a verdict
steward evidence init --minimalCreate only docs/evidence/current-status.mdx as a current claim ledger
steward actions list --jsonList typed repo-local actions and their safety/effect summaries
steward action inspect <id> --jsonInspect one exact action contract before execution
steward schema validate --schema <id> --file <path> --jsonValidate one JSON/JSONL artifact against a Steward schema
steward schema check-outputs --jsonValidate core read-only CLI JSON payloads against repo schemas
steward schema emit --schema <id> --source checked-in|generated --jsonEmit a portable checked-in schema or generated typed-model schema
steward schema drift --jsonCompare generated contract schemas with checked-in schema files
steward blocked explain (--input <path>|--stdin) --jsonTurn blocked Steward JSON into next actions and artifact routes
steward probe --profile quick --jsonRun quick-eligible bounded local observations
steward observe --profile quick --jsonPersist a compact local observation from a bounded probe
steward unknown-case create --from <observation> --jsonTurn an observation into an append-only unknown-case record
steward action-candidate create --from <case> ... --jsonPropose a reviewed action contract from repeated unknown-case evidence
steward action-candidate inspect <path> --jsonInspect a proposed action candidate before review
steward action-candidate review --from <candidate> --jsonValidate an action candidate without promoting it
steward benchmark --scenario <id> --json --output <path>Run or block a durability-gated dogfood scenario and persist a compact summary
steward validate / steward validate allRun every validation lane; bare validate remains the CI-friendly alias for validate all
steward validate skillsValidate installable skill directory structure
steward validate registryValidate skills.sh.json against skill directories
steward validate repo-contractValidate steward.yaml, plan hygiene, custom validators, and plugin manifests
steward validate evidenceValidate committed adoption-run evidence
steward eval --jsonRun T1 behavior-critical rule-based skill routing evals; runtime dogfood belongs to benchmark
steward listList installable skills
steward adoptCreate the baseline skills.json, steward.yaml, and AGENTS.md without typed actions
steward adopt --with-harnessCreate baseline files plus a quick-safe action and probe; add a contract smoke scenario when durable git source facts exist
steward installApply repo-local skills.json registrations into agent-readable folders
steward updateRefresh pinned repo-local skill registrations and update skills.json commits
steward syncDiff installed skill copies against skills.sh.json and prune retired steward skills (--prune to delete, --global/--path to widen scope)

Cold-start proof starts with the claim question: what can this repo honestly claim right now? The loop assumes the steward command is installed or activated; see Portable invocation hierarchy for the supported paths.

bash
steward doctor --jsonsteward schema check-outputs --jsonsteward schema drift --jsonsteward actions list --jsonsteward action inspect steward.contract.status.quick --jsonsteward probe --profile quick --jsonsteward benchmark \  --scenario skill_steward.contract-status-smoke \  --output .steward/benchmark-summaries/skill-steward-contract-status-smoke.json \  --strict \  --json

The schema commands sit in the loop because this dogfood route depends on machine-readable payloads. They catch route drift; they do not prove repo maturity.

Benchmark execution is durability-gated. If source.steward_contract or a file-backed scenario manifest is modified or untracked, the summary must return result: blocked with blocked_by: durability_blocked; track or commit those contract inputs, then rerun the same benchmark for executable proof. The built-in contract-status-smoke scenario proves contract discovery and durability gating only when it returns result: "pass"; it does not prove full agent navigation or diagnosis.

When a fresh command returns blocked JSON, route it directly:

bash
steward benchmark --scenario <scenario> --strict --json | steward blocked explain --stdin --json

Use steward blocked explain --input .steward/benchmark-summaries/<scenario>.json --json only when routing an existing persisted summary. The explanation chooses the next artifact route; it does not repair the repo or turn blocked evidence into proof.

Repository ecology review inventory:

bash
steward ecology snapshot --jsonsteward ecology route --json

The snapshot gathers Steward config status, declared action/probe inventory, benchmark declarations and summaries, schema output status, git state, active plan candidates, and evidence pointers. ecology route composes those facts into North Star dispositions: orient, compress, validate, tutor pain, promote tools, leave native, or stop. It may also emit advisory dispatch_lane_candidates for repo-wide pain, but those hints are not parent lane contracts and never authorize writes. Both commands are read-only; neither executes actions, applies repairs, awards maturity, or proves adoption.

Snapshot benchmark summaries are persisted history from .steward/benchmark-summaries/. The JSON labels them as persisted_history and includes commit/freshness hints; treat may_be_stale: true as a routing signal, not proof failure. Pipe fresh blocked JSON to steward blocked explain --stdin --json; use --output only when a fresh benchmark result should replace persisted history or feed future snapshots.

Minimal evidence bootstrap:

bash
steward evidence init --minimal

This creates one current ledger at docs/evidence/current-status.mdx. It does not create a proof archive, benchmark, or readiness claim. Use it when the repo needs a durable current-status pointer before it needs typed actions, probes, or benchmark machinery.

Evidence growth loop:

bash
steward observe --profile quick --jsonsteward unknown-case create --from .steward/observations/<observation>.json --jsonsteward action-candidate create \  --from .steward/unknown-cases/<case>.json \  --id example.safe.check \  --desc "Run the reviewed bounded check" \  --argv-json '["bash","tool/contracts/example_check.sh"]' \  --fs-read tool/contracts/example_check.sh \  --git false \  --benchmark example.safe-check-smoke \  --jsonsteward action-candidate inspect .steward/action-candidates/<candidate>.json --jsonsteward action-candidate review --from .steward/action-candidates/<candidate>.json --json

An action-candidate review is evidence, not a contract rewrite. Generated candidates include can_promote_in_this_run: false; promote only after repeated evidence, owner review, narrow effects, native validation, and a strict benchmark.

Development

bash
cd packages/steward_clidart pub getdart analyze --fatal-infos   # xsoulspace_lints (library.yaml)dart run :steward validatedart run :steward doctor --jsondart run :steward list

From repo root: pnpm run steward:analyze

Portable invocation hierarchy

Use the first option that matches the job:

  1. Released adopter / CI: install the released binary, then run steward <command>.

    bash
    curl -fsSL https://raw.githubusercontent.com/Arenukvern/skill_steward/main/install.sh | bashsteward doctor --json
  2. Dart maintainer from this checkout: run from source without hard-coded SDK or package-config paths.

    bash
    cd packages/steward_clidart run :steward doctor --json
  3. Local clone global activation: activate the checkout package, then use the normal steward command.

    bash
    dart pub global activate --source path packages/steward_clisteward doctor --json

Raw dart --packages=... bin/steward.dart commands are local provenance only. Do not publish them as adopter instructions; they encode one machine's SDK and package-config layout.

Global install from a source checkout (optional):

bash
dart pub global activate --source path packages/steward_clisteward validate

Distribution

Maintainers: run from a repo clone (commands above). Consumers install public skills with npx skills add arenukvern/skill_steward. Use steward install/update only when a repo intentionally owns a pinned skills.json skill layer for agents and maintainers.

Skill Steward may ship zero-dependency steward binaries for consumer/bootstrap use; see ADR 0014. Product repositories still own their branded harness binaries and release contracts — see skill release-changelog-harness -> references/binary-release-contract.md.

MCP Registry (experimental)

  • Registry server: io.github.Arenukvern/steward-mcp
  • Manifest: server.json; OCI image: packages/steward_cli/Dockerfile.registry
  • Boundary: read-only v1 tools (steward_list_actions, steward_inspect_action, steward_doctor, steward_explain_result); no action execution over MCP
  • Local stdio after binary install: steward mcp (see DX_FAQ)
  • OCI smoke: docker run --rm -i -v "$PWD:/workspace:ro" -w /workspace ghcr.io/arenukvern/steward-mcp:<version>
  • Version drift check: pnpm run mcp:registry:check (also runs in scripts/tag_release.sh)

Decisions

Source: packages/steward_cli/README.md at commit 41635ea

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.7.1LatestNov 14, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts