Files
ponytail/ponytail-mcp
DietrichGebertandClaude Opus 4.8 763e04deee fix: align all version manifests to 4.8.1 + guard against drift (#260, #262) (#270)
* fix: align all version manifests to 4.8.0 + guard against drift (#260, #262)

The v4.8.0 release shipped with all four plugin manifests still reading
4.7.0, and both package.json files still at the 0.1.0 npm-init default.
So Claude/Codex/Gemini reported 4.7.0 as the latest version (#262) and
the project advertised three different versions at once (#260).

Bump all six version-bearing files to 4.8.0 so they match the release tag:
the four plugin manifests, the root package.json, and ponytail-mcp.

Add scripts/check-versions.js, wired into CI, so this cannot recur. It
asserts every version file shares one pinned X.Y.Z version, and on a
release-tag run that the shared version equals the tag. The existing
mutual-agreement check in tests/gemini-extension.test.js could not catch
this, because all four manifests were stale at 4.7.0 together.

Fixes #260
Refs #262

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix: target 4.8.1 for a clean superseding release

v4.8.0 was already tagged with the stale 4.7.0 manifests. Rather than rewrite a published tag, ship the consistent versions as v4.8.1. The CI guard enforces tag == version on the release run. (#260, #262)

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 18:28:53 +02:00
..

ponytail-mcp

An MCP server that serves Ponytail's lazy-senior-dev instructions. It exposes the same ruleset the Claude hooks and Pi extension use, so every host emits identical rules.

It is not a replacement for the always-on adapters. Ponytail normally lives in the system context every turn. MCP prompts are user-invoked, and there is no portable MCP primitive for "inject this into every turn" across hosts. So this server is the clean option for MCP hosts whose only injection point is the prompt menu, or that pull context through tools. See issue #70.

What it exposes

  • Prompt ponytail, returns the ruleset as a user message. Optional mode argument: lite, full, or ultra. Omit it to use the configured default.
  • Tool ponytail_instructions, same text, plus structuredContent ({ mode, instructions }), for hosts that pull context via tools or code execution. Read-only.

Mode resolution reuses hooks/ponytail-config.js, so PONYTAIL_DEFAULT_MODE and ~/.config/ponytail/config.json work the same as everywhere else.

Run it

cd ponytail-mcp
npm install
node index.js        # speaks MCP over stdio

Point an MCP host at that command. Example client entry:

{ "mcpServers": { "ponytail": { "command": "node", "args": ["ponytail-mcp/index.js"] } } }

Test

npm test

Covers mode resolution and the instruction text. The MCP wiring in index.js is intentionally thin: it just maps the prompt and tool onto buildInstructions.