mk-plan-master
The mk-plan-master server provides an AI-driven planning and prioritization toolkit that bridges idea capture and formal specification. Here's what you can do:
Manage Initiatives: List, fetch, and add product initiatives from local Markdown files, Linear, JIRA, or Notion. Auto-summarize ideas from chat, WebFetch, or call notes with generated IDs.
Analyze & Score: Run a structured senior-PM analysis (target users, competition, risks, MVP scope) before scoring. Apply RICE or Impact-Effort to individual initiatives or the full backlog, with auto-tier classification (P0–P3) and archived snapshots.
Plan Roadmaps: Generate quarterly roadmaps by packing ranked initiatives into an engineering capacity envelope (with configurable buffer), outputting commitments, stretch goals, and deferred items. Analyze roadmap balance across feature, tech-debt, and strategic buckets.
Generate Spec Drafts: Produce formatted Markdown spec drafts (default, lite, or detailed templates) ready for direct ingestion by
mk-spec-master.Manage Planning Knowledge: Initialize and read a
plan-knowledge.mdfile containing scoring frameworks (RICE, WSJF, Impact-Effort), OKR mappings, personas, and a domain glossary to keep all scoring decisions consistently framed.Monitor Planning Quality: Track backlog trends over 7- and 30-day snapshots, detect chronic issues (ghost initiatives, score whiplash, orphan OKRs), and analyze tool usage telemetry (call frequency, error rates, latency) for self-improvement.
Provides tools to list, fetch, and manage initiatives from Jira, serving as a source for idea triage and planning.
Provides tools to list, fetch, and manage initiatives from Linear, serving as a source for idea triage and planning.
Provides tools to manage initiatives as local Markdown files, enabling idea capture and planning from a local project root.
Provides tools to list, fetch, and manage initiatives from Notion, serving as a source for idea triage and planning.
Idea triage + RICE scoring + quarterly roadmap + spec-draft bridge — over MCP. Reads from Linear / JIRA / Notion / Markdown, hands the generated spec draft directly to
mk-spec-master.parse_spec, and remembers every decision so the same idea never bounces back unexplained.
🟢 Alpha — v0.1. 15 tools + 4 adapters + 77 tests passing. Full design in
docs/prd.md. Walkthrough using a real dogfood case indocs/walkthrough.md.
Why this exists
With mk-plan-master shipped, the AI-driven dev pipeline now looks like this:
Idea → Plan → Spec → Code → Test → Coverage → Coach
mk-plan mk-spec your IDE mk-qa mk-spec bothUntil v0.1 the upstream slot was a ??? — mk-spec-master could parse a spec, mk-qa-master could run tests, but nobody had built the piece that turns a pile of 30–200 raw ideas (chat snippets, customer calls, URLs, gut hunches) into a prioritized, RICE-scored backlog and emits a spec draft that drops straight into mk-spec-master.parse_spec(raw_text=...) — no manual reformatting, no copy-paste fragility.
mk-plan-master is that piece. The mk-* family is now whole:
mk-plan-master— ideas in, prioritized plans + spec drafts out (this repo)mk-spec-master— specs in, scenarios out, coverage matrixmk-qa-master— scenarios in, runnable tests out (pytest / Jest / Cypress / Go test / Maestro)
It's also the planning MCP that measures its own decision quality over time — history snapshots, decision signatures (ghost initiatives / score whiplash / orphan OKRs), and tool-usage telemetry. The mk-spec-master v0.4 self-reinforcement layer, applied one step upstream.
Related MCP server: mk-spec-master
The family loop
┌─────────┐ ┌──────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌─────────┐
│ Idea │ ───> │ Plan │ ───> │ Spec │ ───> │ Code │ ───> │ Test │ ───> │ Coverage│
│ (chat, │ │ mk-plan- │ │ mk-spec-│ │ your IDE│ │ mk-qa- │ │ mk-spec-│
│ URL, │ │ master │ │ master │ │ (Claude │ │ master │ │ master │
│ call) │ │ │ │ │ │ Code / │ │ │ │ │
│ │ │ RICE + │ │ AC + │ │ Cursor /│ │ runnable │ │ matrix │
│ AI │ │ roadmap +│ │ scenarios│ │ Copilot)│ │ tests in │ │ + drift │
│ summary │ │ spec │ │ + drift │ │ writes │ │ pytest / │ │ + coach │
│ │ │ draft │ │ │ │ impl │ │ Jest / …│ │ │
└─────────┘ └──────────┘ └─────────┘ └─────────┘ └──────────┘ └─────────┘
▲ │ │ ▲ ▲ │
│ │ │ │ │ │
│ └──── spec_draft ──┘ │ │ │
│ │ │ │
│ red tests ──┘ │ │
│ │ │
└─────────────────── decision history / chronic patterns ───────────────────┴──────────────────┘Important. Code lives in your IDE, not in the family. Between spec and green tests, Claude Code / Cursor / Copilot writes the actual implementation. The MCP family wraps the rails — planning, spec, test, coverage, coach — and deliberately leaves the code-writing layer to whatever AI-pair-programming tool you already use. Tests generated by mk-qa-master are a runnable TODO list; the IDE loop flips them red → green.
Install
uvx mk-plan-master # or: pip install mk-plan-masterAdd to your MCP client config:
{
"mcpServers": {
"mk-plan-master": {
"command": "uvx",
"args": ["mk-plan-master"],
"env": {
"PLAN_SOURCE": "markdown_local",
"PLAN_PROJECT_ROOT": "/path/to/your/project"
}
}
}
}Works in Claude Desktop, Claude Code, Cursor, Codex CLI, Gemini CLI — any MCP client.
Claude Desktop config lives at:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Then in your AI session:
"Use mk-plan-master to score every triage idea, pick the top one, run analyze_initiative on it, then generate a spec draft and hand it to mk-spec-master."
Tool surface (15 tools)
Grouped by role in the idea → plan → spec → memory loop.
Meta — orientation (1)
Tool | Purpose |
| Active adapter + all available + version. Call first so the AI knows whether to expect markdown / Linear / JIRA / Notion semantics |
Discovery — find and load ideas (2)
Tool | Purpose |
| Enumerate initiatives from the active source (filter by status / label / limit). For Linear: triage / backlog / unstarted. For JIRA: statusCategory='To Do'. For Notion: status in (Triage / Backlog / Idea) |
| Pull a single initiative by id. Returns |
Capture — chat / WebFetch handoff (1)
Tool | Purpose |
| Persist an idea you (the AI client) already gathered via WebFetch / chat / call notes into |
Analysis — the senior-PM SOP (1)
Tool | Purpose |
| Force a senior-PM analysis SOP before scoring. Returns a structured checklist (target users / competition / market signal / risks / MVP scope / out-of-scope / RICE rationale) the AI must fill in inline. Loads |
Scoring — prioritize the backlog (2)
Tool | Purpose |
| Score one initiative with RICE or Impact-Effort. Pass |
| Score the whole backlog and return the top-N descending. Pure arithmetic, deterministic rationale strings. Auto-archives a snapshot to |
Bridge — the family lock-in (1)
Tool | Purpose |
| The family-bridge tool. Produce a markdown spec draft shaped so |
Roadmap — quarterly planning (2)
Tool | Purpose |
| Pack the ranked backlog into a quarterly markdown roadmap, respecting an engineering capacity envelope (engineer-months × 4 person-weeks) minus a buffer (default 20%). Greedy score-per-effort packer. Output split into P0 commitments / P1 commitments / P2 stretch / Deferred / Capacity summary |
| Classify top-N initiatives into feature / tech_debt / strategic / unlabeled buckets, surface ratio + score-share + heuristic advisory. Label vocabularies configurable. Answers "is the roadmap balanced?" / "are we starving tech debt?" |
Knowledge — methodology layer (2)
Tool | Purpose |
| Create |
| Read |
Self-reinforcement — long-running view (3)
Tool | Purpose |
| Trend deltas (current vs ~7d / ~30d) for top-10 RICE-ranked snapshots. Surfaces churn + average score. "Are we improving?" / "Is the same idea always at the top?" |
| Chronic patterns: ghost initiatives (top-10 in >50% of snapshots but never spec_generated), score whiplash (RICE swings >50% between snapshots → bad data quality), orphan OKRs (in index but zero initiatives in current top-10). "Which ideas keep getting punted?" |
| Aggregate |
Adapter status
| Source | Status | Auth |
| Local | Shipped in v0.1.0 | none |
| Linear API (GraphQL), filtered to triage / backlog / unstarted state types | Shipped in v0.1.0 |
|
| JIRA Cloud (REST v3, ADF → markdown), filtered to | Shipped in v0.1.0 |
|
| Notion databases (REST v1, blocks → markdown), filtered to Status in (Triage / Backlog / Idea) | Shipped in v0.1.0 |
|
Why analyze_initiative exists — a real case study
This is the differentiator. AI clients, by default, shortcut into a shallow read of any idea handed to them. They infer Reach / Impact / Confidence / Effort from a 2-paragraph blurb and produce a confident-looking RICE score that's mostly noise. The numbers below are from the actual dogfood corpus in mk-plan-test/ — same URL, same idea, two passes.
Pass 1 — without analyze_initiative (the AI just reads the URL and guesses):
IDEA-001 · 一鍵式 IP 授權平台(AI + 區塊鏈)
reach 500
impact 2
confidence 0.5
effort 12 person-weeks
out_of_scope [] (none)
RICE (500 × 2 × 0.5) / 12 = 41.7 → P0A confident P0. Looks like a no-brainer "ship it next quarter."
Pass 2 — with analyze_initiative (the AI is forced through the senior-PM SOP first):
IDEA-002 · RightClick — 一鍵式 IP 授權平台(AI + 區塊鏈)
reach 250 ← scoped to "active users per quarter
in initial regions (Singapore + US-west
social), not raw addressable market"
impact 2 ← same
confidence 0.4 ← dropped: logo wall is unverifiable,
AI-contract legal status untested,
two-sided cold-start unproven, no GMV
effort 18 person-weeks ← raised: wallet 3w + AI templates 4w
+ contracts/NFT 3w + marketplace 3w
+ lawyer review + security 3w
+ backoffice/observability 2w
out_of_scope 8 explicit items ← fiat rails, cross-chain bridging,
derivative auto-royalties (v2),
multi-jurisdiction custom legal,
DRM, PRO-style collective rights,
video/animation, enterprise SSO
RICE (250 × 2 × 0.4) / 18 = 11.1 → P1The delta — same URL, same idea, an order of magnitude more honest:
Field | Pass 1 (junior PM) | Pass 2 (senior PM SOP) | Delta |
reach | 500 | 250 | scoped down |
confidence | 0.5 | 0.4 | dropped — logo washing risk, AI-contract legal risk surfaced |
effort | 12 pw | 18 pw | +6 pw for lawyer review + security |
out_of_scope | 0 items | 8 items | explicit MVP fence |
RICE | 41.7 | 11.1 | 3.8× drop |
tier | P0 | P1 | one tier down |
P0 → P1 is the difference between "ship next quarter" and "validate first." analyze_initiative is the SOP that gets you there without needing a senior PM in the room. Same idea, same source URL — different rigor.
Both initiatives are in mk-plan-test/initiatives/ verbatim. Both spec drafts are in mk-plan-test/specs/. The full decision trail is in .mk-plan-master/index.json — every scored and spec_generated event with timestamps. Walkthrough with prompts + tool chains in docs/walkthrough.md.
4 prompting workflows
Four natural-language prompts cover ~90% of real use. Each is one sentence to your AI client; the tools chain automatically.
1. Lock one idea — URL → spec_draft
"I read https://rightclickip.xyz/ — capture it as an initiative, run analyze_initiative on it, score it, and produce a detailed spec draft I can hand to mk-spec-master."
Chains: add_initiative (from your chat summary, family does NOT crawl) → analyze_initiative → add_initiative(overwrite=true) (with the enriched body) → score_initiative → generate_spec_draft(template="detailed") → mk-spec-master.parse_spec(raw_text=...).
2. Weekly backlog re-rank — trend over time
"Every Monday, rank my Linear triage backlog with RICE and show me the trend vs last week and last month."
Chains: rank_backlog(method="rice", limit=10) → get_planning_history(window_days=30). The first call auto-archives the snapshot; the second reads them all and computes deltas.
3. Senior-PM SOP on demand
"Apply the senior-PM analysis SOP to IDEA-014 — I want target users, competition, market signal, risks, MVP scope, out-of-scope, and RICE rationale before I score it."
Chains: get_plan_context (loads methodology + glossary) → fetch_initiative("IDEA-014") → analyze_initiative("IDEA-014", framework="default") → AI fills checklist in response → add_initiative(overwrite=true) → score_initiative.
4. Quarterly roadmap from Notion triage
"Pull every Notion idea in the Triage view, rank them with RICE, then pack a Q3 2026 roadmap assuming 4 engineers and 20% buffer. Tell me if the feature/tech-debt/strategic mix looks healthy."
Chains: list_initiatives(status="triage") → rank_backlog → generate_roadmap(capacity_engineer_months=12, period="Q3 2026", buffer_pct=20) → analyze_roadmap_balance.
Self-reinforcement layer
get_planning_history + get_decision_signature + get_telemetry are the trio that makes mk-plan-master measure its own decision quality over time. The mk-spec-master v0.4 pattern, applied one step upstream.
Layer | Question it answers | Storage |
History | "Are we improving? Is the same idea always at the top?" |
|
Decision signature | "Which ideas keep getting punted (ghost)? Which scores swing wildly (whiplash)? Which OKRs have zero execution (orphan)?" | Computed from history + |
Telemetry | "What's the AI actually using? Which tools are slow? Which are dead surface?" |
|
Same shape as mk-spec-master's get_spec_history / get_drift_signature / get_telemetry, so if you already trust that pattern you know the layout.
The decisions[] audit trail on every initiative ("why did we deprioritize this last quarter?") is what kills the bouncing back problem. No more "didn't we discuss this in March?" — March's RICE breakdown is in the index with its confidence and effort values.
Why this is missing from the ecosystem
Tool | Lock-in | What we do differently |
Productboard | $20-50/user/mo, walled garden | MCP-native: lives where the AI lives. Read existing Linear / JIRA / Notion, don't import to a new tool |
Aha! | $59-149/user/mo, enterprise | Open-source baseline, SMB / indie / AI-native segment |
Linear / JIRA | Backlog UI, no triage framework, no plan→spec bridge | We add the scoring + roadmap + spec-bridge layers on top of what you already have |
Cursor / Claude "ask AI to plan" | Free-form chat, no persistence | Structured outputs, JSON index, traceable decisions, snapshot history |
AWS Kiro plan phase | AWS IDE only, proprietary | MCP-native, multi-client |
GitHub Spec Kit | Spec-first, doesn't reach upstream into idea triage | We're the missing pre-spec layer; complementary |
See docs/prd.md §4 for the full positioning.
Status
Milestone | Scope | Status |
v0.1 (4 adapters, 15 tools, RICE + Impact-Effort, generate_spec_draft, plan-knowledge, self-reinforcement) | This release | Shipped |
v0.2 (Productboard adapter, | +1 week | Planned |
v0.3 (Intercom / Zendesk adapters, | +2 weeks | Planned |
v1.0 (production-ready, docs, integration recipes, blog series) | Q3 2026 | Planned |
77 tests passing on Python 3.10 / 3.11 / 3.12 / 3.13.
Family
mk-spec-master— AI 規格大師. Spec → scenarios → coverage matrix.generate_spec_draftoutput is shaped to drop into itsparse_spec(raw_text=...)verbatim.mk-qa-master— AI 測試大師. Scenarios → runnable tests in pytest / Jest / Cypress / Go test / Maestro.
The family loop: mk-plan-master → mk-spec-master → your IDE → mk-qa-master → back into mk-spec-master coverage.
License
MIT © 2026 Jack Kao — see LICENSE.
Plain-English version: personal use, commercial use, modification, redistribution — all allowed. The only requirement is that you keep the copyright and license notice in your copy. No warranty: if it breaks in production, you can't come after the author.
Built by Jack Kao . Part of the mk-* family: mk-qa-master + mk-spec-master + mk-plan-master.
If this saved you time, a coffee goes a long way.
Available Tools
15 toolsadd_initiativeA
Write a new markdown_local initiative into PLAN_PROJECT_ROOT/initiatives/.md. Use this to capture an idea you (the AI client) already gathered via WebFetch / chat summary / customer-call notes — plan-master deliberately does NOT crawl URLs; you summarize, this tool persists. Only works when PLAN_SOURCE=markdown_local; for Linear / JIRA / Notion, create the issue in that platform instead. If id is omitted, auto-generates IDEA-NNN. Returns {id, written_to, source, overwritten, next_step_hint}. Typical chain: add_initiative -> score_initiative -> generate_spec_draft -> mk-spec-master.parse_spec.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| body | No | ||
| id | No | ||
| status | No | triage | |
| labels | No | ||
| reach | No | ||
| impact | No | ||
| confidence | No | ||
| effort | No | ||
| okr | No | ||
| out_of_scope | No | ||
| source_url | No | ||
| overwrite | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses writing location, ID auto-generation, return fields, and overwrite capability (though overwrite behavior could be more explicit). Without annotations, this is good but not exhaustive; e.g., no mention of idempotency or what happens on duplicate ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the core action, then adds context, restrictions, return, and chain. It is efficient with no fluff, though it could use bullet points for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters and no output schema, the description covers the high-level workflow and constraints well but lacks detail on many parameters (score fields, labels, okr, etc.). The return object is mentioned but not fully specified. The typical chain provides some context for downstream use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. However, it only explains the 'id' parameter's auto-generation and mentions 'overwrite' in return. Most parameters (reach, impact, confidence, etc.) are not explained, leaving the agent to guess their meaning from names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool writes a new markdown_local initiative to a specific file path. It distinguishes itself from siblings by specifying the use case (capturing already-gathered ideas) and the source type (markdown_local only). The verb 'write' and resource 'initiative' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use: 'capture an idea you already gathered via WebFetch / chat summary / customer-call notes'. Also includes when-not-to-use: 'plan-master deliberately does NOT crawl URLs; you summarize, this tool persists.' Offers alternatives: for other platforms, create the issue there. Additionally, provides a typical chain of tool usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_initiativeA
Force a senior-PM analysis SOP on one initiative BEFORE scoring. Returns the initiative body + a structured checklist (target users / competition / market signal / risks / MVP scope / out-of-scope / RICE rationale) the AI client must fill in inline as its response. Loads plan-knowledge.md context if present. The tool does NOT call an LLM — it scaffolds the prompt so the AI doesn't shortcut into a shallow read. Use this WHENEVER an idea originates from chat / WebFetch and lacks a thorough product analysis. After filling the checklist, call add_initiative(overwrite=true) with the enriched body, then score_initiative. Framework options: 'default' (7 sections), 'lite' (4 sections), 'lean_canvas' (9 blocks). Returns {initiative, framework, methodology_context, analysis_checklist, instructions, next_step_hint}.
| Name | Required | Description | Default |
|---|---|---|---|
| initiative_id | Yes | ||
| framework | No | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: the tool does not call an LLM, it loads plan-knowledge.md context, forces a SOP, and returns a structured checklist for the AI to fill inline. With no annotations provided, the description fully compensates by detailing what the tool does and does not do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but slightly verbose; still, every sentence contributes value. It is well-structured, starting with purpose, then usage guidance, then behavioral details, then framework options, and ending with return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (no annotations, no output schema), the description is remarkably complete. It covers purpose, usage, behavior, parameters, return value, and integration with other tools (add_initiative, score_initiative). An agent can correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains both parameters: initiative_id (required, string), and framework (optional, with enumerated options: 'default', 'lite', 'lean_canvas' and descriptions of each). Also describes the return value structure, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes a specific action: forcing a senior-PM analysis SOP on an initiative before scoring. Clearly distinguishes from siblings like score_initiative and add_initiative by stating it is a prerequisite step and that it does not call an LLM but scaffolds the prompt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'WHENEVER an idea originates from chat / WebFetch and lacks a thorough product analysis.' Also provides a clear sequence of next steps: after filling the checklist, call add_initiative(overwrite=true) then score_initiative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_roadmap_balanceA
Classify the top-N ranked initiatives into feature / tech_debt / strategic / unlabeled buckets by label, then surface ratio + score-share + a terse heuristic advisory. Use when a user asks 'is the roadmap balanced' / 'are we starving tech debt' / 'do we have any strategic bets'. Label vocabularies are configurable: feature_labels (default ['feature', 'product']), tech_debt_labels (default ['tech-debt', 'refactor', 'infra']), strategic_labels (default ['strategic', 'bet', 'moonshot']). Returns {method, totals, ratio_pct, score_share_pct, advisory}.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | rice | |
| limit | No | ||
| feature_labels | No | ||
| tech_debt_labels | No | ||
| strategic_labels | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses configurable label vocabularies with defaults and the return structure. However, it does not mention whether the tool is read-only, any side effects, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding meaningful information. It is front-loaded with the primary function. Slightly verbose but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no output schema, no annotations), the description covers usage and label configuration but omits details on method scoring, limit's role, and whether the tool mutates data. It feels adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds value by explaining the label parameters and their defaults. However, 'method' and 'limit' are not explained beyond defaults; 'rice' as a method is an acronym without elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('classify', 'surface') and identifies the resource ('top-N ranked initiatives'), clearly distinguishing it from siblings like analyze_initiative or rank_backlog. It also provides example use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool with example user queries ('is the roadmap balanced', 'are we starving tech debt'). It does not explicitly state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_initiativeA
Pull a single initiative by id from the active source. Returns the full Initiative record {id, source, title, body, url, status, labels, raw_metadata}. raw_metadata holds scoring inputs (reach / impact / confidence / effort / okr) plus any source-specific fields. Pair with score_initiative to get a RICE / Impact-Effort rank.
| Name | Required | Description | Default |
|---|---|---|---|
| initiative_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It correctly indicates a read operation ('Pull') and lists return fields, but omits details on error handling, auth requirements, or data freshness. The description is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and return structure. Every sentence adds value: what it does, what it returns, and how it pairs with another tool. No excessive wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given lack of output schema, the description compensates by listing return fields. Also pairs with score_initiative for context. However, missing usage guidelines and parameter details reduce completeness for independent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds minimal value: 'by id' merely restates the parameter name. No information on format, source of ID, or constraints beyond the schema's type string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Pull' and resource 'initiative by id' are specific and clear. The description distinguishes from siblings by mentioning pairing with score_initiative and implying it as a single-record fetch, unlike list_initiatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by mentioning pairing with score_initiative for ranking, but does not explicitly state when to use this tool vs alternatives like list_initiatives or add_initiative. Lacks when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_roadmapA
Pack the ranked backlog into a quarterly roadmap markdown, respecting an engineering capacity envelope (in engineer-months × 4 person-weeks) minus a buffer (default 20%). Uses a greedy score-per-effort packer — items with the highest RICE-per-pw ratio land first. Output is split into P0 commitments / P1 commitments / P2 stretch / Deferred / Capacity summary. Required: capacity_engineer_months (float), period (str like 'Q3 2026'). Optional: okr (str — pinned at top), method (default 'rice'), buffer_pct (default 20). Returns {markdown, scheduled[], deferred[], capacity_used_pw, capacity_total_pw, buffer_pw, method, period}.
| Name | Required | Description | Default |
|---|---|---|---|
| capacity_engineer_months | Yes | ||
| period | Yes | ||
| okr | No | ||
| method | No | rice | |
| buffer_pct | No | ||
| status | No | ||
| label | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully shoulders the burden. It discloses the algorithm (greedy score-per-effort packer using RICE-per-pw ratio), the output structure (markdown with sections, capacity metrics), and parameter semantics, providing comprehensive behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured paragraph of about 5 sentences. It begins with the main action, then algorithm, output, parameters, and return shape—all concisely stated with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 7 parameters, no annotations, and no output schema, the description covers most aspects: algorithm, required/optional inputs, and return structure. It lacks explanation for status and label and does not mention prerequisites or side effects, but is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to 5 of 7 parameters (capacity_engineer_months, period, okr, method, buffer_pct) by explaining units, defaults, and constraints. However, it omits status and label, which have no schema descriptions (coverage 0%), leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Pack the ranked backlog into a quarterly roadmap markdown.' It specifies the verb (pack), resource (ranked backlog), and output format (quarterly roadmap markdown with sections like P0 commitments, etc.), distinguishing it from siblings like rank_backlog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It implies the tool should be used after backlog ranking, but no direct guidance on when not to use or comparison with sibling tools like analyze_roadmap_balance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_spec_draftA
Produce a markdown spec draft for one initiative, shaped so mk-spec-master.parse_spec(raw_text=...) can ingest it verbatim. Three templates: 'default' (title / source / OKR / context / acceptance criteria / out-of-scope), 'lite' (title / context / acceptance criteria), 'detailed' (default + risks + dependencies + estimated effort). Appends a spec_generated decision to the index. Returns {markdown, suggested_filename, template_used, ready_for_mk_spec_master, next_step_hint}.
| Name | Required | Description | Default |
|---|---|---|---|
| initiative_id | Yes | ||
| template | No | default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses that the tool appends a `spec_generated` decision to the index (a side effect) and returns a structured object with fields like `ready_for_mk_spec_master`. This adds behavioral context beyond the schema. However, it does not mention error conditions or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured: first sentence captures core purpose, then templates, side effect, and return fields. Every sentence adds value. Could be slightly more concise, but it remains clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the key aspects: templates, return structure, side effect, and integration with mk-spec-master. It is missing error handling or edge-case behavior, but for a draft generator, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains the two parameters: `initiative_id` (the target initiative) and `template` with its three options (default, lite, detailed) and their contents. This compensates for the schema's lack of descriptions and provides meaningful semantics for parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces a markdown spec draft for one initiative with specific formatting for mk-spec-master ingestion. It names three templates (default, lite, detailed) and their contents. While it doesn't explicitly differentiate from sibling tools, the purpose is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating spec drafts but provides no guidance on when to use this tool versus siblings like add_initiative or analyze_initiative. It does not mention prerequisites or when not to use it, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_decision_signatureA
Scan history + index for chronic patterns: ghost initiatives (appear in top-10 in >50% of snapshots but never spec_generated), score whiplash (RICE swings >50% between snapshots → bad data quality), orphan OKRs (OKRs in the index with zero initiatives in the current top-10). Use when a user asks 'which ideas keep getting punted' / 'why does this score keep moving' / 'which OKR has no execution'. Args: window_days (default 30). Returns {ghost_initiatives, score_whiplash, orphan_okrs, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| window_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It states 'scan history + index' implying read-only, but lacks explicit safety confirmation, authorization needs, or performance implications. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences cover purpose, patterns, usage examples, and parameter. Every sentence is informative with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes return structure {ghost_initiatives, score_whiplash, orphan_okrs, summary} without output schema. Good for a scanning tool but could mention data scope limits or performance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Mentions 'window_days (default 30)' in description, which adds the default but does not explain its effect on results. Schema already provides type and default, so only marginal value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes scanning for three specific chronic patterns (ghost initiatives, score whiplash, orphan OKRs) with example user queries, making the tool's purpose highly specific and distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists three user query examples ('which ideas keep getting punted', etc.) that trigger tool usage, but does not mention when not to use or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plan_contextA
Read PLAN_PROJECT_ROOT/plan-knowledge.md (or fall back to built-in defaults if missing). Call near the start of a planning session so the same methodology + domain glossary colours every scoring decision that follows. Optional section filters to a single heading (partial-match, case-insensitive) — e.g. section='RICE' returns just the RICE block. Returns {source: 'file'|'builtin', content, ...}.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Optional heading filter (partial match, case-insensitive). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses fallback behavior, optional section filter, and return shape ({source, content}). Implies read-only; no side effects mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: action/fallback, usage timing, parameter detail. Front-loaded and no extraneous content. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes return shape despite no output schema, mentions file path and fallback. Adequate for a simple read tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% with description of section parameter. Description adds example (section='RICE') and clarifies partial-match, case-insensitive behavior, adding value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Read PLAN_PROJECT_ROOT/plan-knowledge.md' with fallback to built-in defaults. Distinguishes from siblings like init_plan_knowledge (write) and get_plan_source_info (different context).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to call 'near the start of a planning session' to ensure consistent methodology and glossary. Does not explicitly state when not to use or alternatives, but context makes it appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_planning_historyA
Return trend deltas (current vs ~7 days ago / vs window_days ago) for the top-10 RICE-ranked backlog snapshots archived by rank_backlog. Surfaces churn (entries added/dropped) plus the average score of the current top-10. Use when a user asks 'are we improving' / 'show me the trend' / 'is the same idea always at the top'. Returns {snapshots_count, trend_7d, trend_30d, summary}.
| Name | Required | Description | Default |
|---|---|---|---|
| window_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explains that the tool compares current snapshots to those from ~7 days ago or a configurable window_days ago, and surfaces churn and average scores. It does not detail permissions or side effects but adequately describes behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core function, and includes examples and return structure. Every sentence adds value without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description provides the return fields (snapshots_count, trend_7d, trend_30d, summary) and context about data sources (rank_backlog snapshots) and ranking method (RICE). It is sufficiently complete for a simple tool with one parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, window_days, is implied in the description ('vs window_days ago') and its default is given. Though schema coverage is 0%, the description adds meaning by connecting it to the trend periods. It could be more explicit but is sufficient for a single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb (Return), resource (trend deltas for top-10 RICE-ranked backlog snapshots), and what it provides (snapshots_count, trend_7d, trend_30d, summary). It distinguishes from siblings by referencing rank_backlog and trend analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives example user queries that indicate when to use this tool ('are we improving?', 'show me the trend', 'is the same idea always at the top'). It does not mention when not to use or alternatives, but the examples are clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plan_source_infoA
Return the active initiative source (selected via PLAN_SOURCE env var) plus all adapters built into this server. Call first in any session so the AI knows whether to expect markdown / Linear / JIRA / Notion semantics. Returns {active, available, version}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries behavioral disclosure. It explains the return shape ({active, available, version}) and that it is a read-only retrieval of the source and adapters. It does not explicitly state that it has no side effects, but the read-only nature is implied. A 5 would require explicit mention of no mutation or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence states the purpose and scope, the second provides usage guidance and indicates the return format. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema, no annotations), the description is complete. It explains the output structure, the source of the active source (env var), and the rationale for ordering. There is no missing information needed for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema coverage is 100% (empty object). The description adds meaning beyond the schema by explaining what the return value contains and why it should be called first. The baseline for 0 params is 4, and the description meets it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns the active initiative source and all adapters built into the server. The verb 'Return' and specific resources ('active initiative source', 'all adapters') make the action unambiguous. The mention of 'PLAN_SOURCE env var' distinguishes it from sibling tools that operate on initiatives directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to 'Call first in any session so the AI knows whether to expect markdown / Linear / JIRA / Notion semantics.' This sets a clear precondition and informs the AI about the tool's role as a session initializer. It implicitly defines when not to use (after session context is established) and provides the rationale for calling it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_telemetryA
Aggregate the tool-usage log written by this server. Surfaces: which tools are called most, which fail most (error rate), p50 / p95 / p99 latency, and which declared tools have never been called in the window (dead surface). Records contain only tool name + timing + ok flag — argument values are never logged. Use when a user asks 'what's the AI actually using' / 'which tools are slow' / 'which tools are unused'. Args: window_days (default 7). Returns {calls_total, calls_by_tool, error_rate_pct, p50_ms, p95_ms, p99_ms, top_tools[], dead_tools[]}.
| Name | Required | Description | Default |
|---|---|---|---|
| window_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses what data is logged (tool name, timing, ok flag) and importantly what is NOT logged (argument values). With no annotations, description carries full burden and fulfills it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences plus a return value list. Front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, inputs, outputs, usage guidance, and behavioral notes. No gaps given the tool's simplicity and lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with default; description repeats schema info but adds no new semantic context. However, the parameter is simple and usage context implies the time window.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it aggregates tool-usage logs and lists specific metrics (most called, error rate, latency, dead surfaces). Distinguishes from sibling tools which focus on initiatives and planning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly maps to user queries like 'what's the AI actually using' and 'which tools are slow/unused', providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
init_plan_knowledgeA
Create PLAN_PROJECT_ROOT/plan-knowledge.md from a starter template. The file carries methodology (RICE, WSJF, Impact-Effort, OKR mapping, INVEST, personas / job-stories, decision-log convention) plus TODO sections for active OKRs / personas / strategic bets / tech-debt zones / glossary / roadmap rhythm. Other mk-plan-master tools lean on this indirectly via get_plan_context. Idempotent — refuses to overwrite an existing file unless overwrite=true. Optional project_name labels the file. Override location via the PLAN_KNOWLEDGE_FILE env var.
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | No | ||
| overwrite | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: idempotency (refuses to overwrite unless overwrite=true), optional project_name to label the file, and override location via PLAN_KNOWLEDGE_FILE env var. It lacks details on error handling or permission requirements but is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences, with the first sentence front-loading the core purpose and contents, and the second adding behavioral details. Every sentence is informative and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers file creation, contents, and idempotency, but does not explain the return value or confirmation message. Given no output schema, this information would be helpful for the agent to understand the tool's response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (project_name and overwrite) are explained: project_name labels the file, overwrite with default false. However, the exact effect of project_name on the file content or naming is a bit ambiguous. Overall, it adds value beyond the schema, which had no descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates PLAN_PROJECT_ROOT/plan-knowledge.md from a starter template, listing the file's contents (methodologies, sections). It distinguishes itself from sibling tools that focus on initiatives and analysis, establishing a unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions other mk-plan-master tools lean on this indirectly, implying it is a foundational setup tool. However, it does not explicitly state when to use it versus alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_initiativesA
Enumerate product initiatives from the active source. For markdown_local this globs PLAN_PROJECT_ROOT/initiatives/*.md and reads YAML-ish frontmatter; for linear it queries the GraphQL API for issues in triage / backlog / unstarted state types; for jira it runs JQL filtered to statusCategory='To Do'; for notion it queries the database and filters to status in (Triage / Backlog / Idea). Optional filters: status (string — adapter-specific), label (string — single label match), limit (int, default 50). Returns {source, count, initiatives[]}.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| label | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It transparently explains how the tool behaves per adapter (e.g., globbing files, querying APIs, filtering statuses), lists optional filters, and describes the return structure. This adds significant behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise given the complexity of multiple adapters. It front-loads the core purpose, then details adapter behaviors, then lists filters and return. It is well-structured but could benefit from more succinctness or bullet points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and three parameters, the description covers purpose, adapter-specific behavior, optional filters, and return format. It lacks error handling, prerequisites, or source activation info, but overall is fairly complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning by explaining each parameter: status is adapter-specific, label is a single label match, limit has default 50. This provides context that the schema alone does not, though it could be more detailed for each adapter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it enumerates product initiatives from the active source, details adapter-specific behaviors, lists optional filters, and specifies the return structure. This is specific and distinguishes it from sibling tools that add, fetch, or analyze initiatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool over alternatives like fetch_initiative or analyze_initiative. It mentions 'active source' but does not clarify how to set or determine the active source, and lacks context for choosing among adapters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_backlogA
Score every initiative the active adapter exposes and return the top-N descending. Pure arithmetic, no LLM call — the rationale string is generated from the breakdown so the output stays deterministic. Optional filters mirror list_initiatives: status, label. method defaults to 'rice'; limit defaults to 10. Auto-archives a snapshot to .mk-plan-master/history/.json so get_planning_history / get_decision_signature can compute trend deltas across cycles (debounced to 5 minutes by default). Returns {method, count, ranking[]}.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | rice | |
| status | No | ||
| label | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description fully compensates by disclosing deterministic behavior (pure arithmetic, no LLM call), rational breakdown, auto-archiving to history, and trend delta computation. All key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but dense, packing many details into a single paragraph. It is front-loaded with the core purpose, but could benefit from clearer sectioning or bullet points for readability without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description specifies the return format ({method, count, ranking[]}), explains deterministic behavior, and covers archiving and integration with other tools (e.g., get_planning_history). The presence of sibling tools provides context, and the description is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description explains defaults for method and limit, and notes that status/label filters mirror 'list_initiatives'. It adds meaning beyond the schema, though it does not explain possible values for 'method' or 'status' label ranges.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scores initiatives and returns top-N descending, with specific verb 'rank' and resource 'backlog'. It distinguishes from siblings like 'list_initiatives' (listing) and 'score_initiative' (single) by focusing on ranking and aggregation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filters that mirror 'list_initiatives', default values for method and limit, and auto-archiving. However, it does not explicitly state when to use this tool versus alternatives like 'score_initiative' or 'list_initiatives', though the purpose implies ranking use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_initiativeA
Score one initiative with RICE or Impact-Effort. Pass initiative_id to score a source-resolved record (RICE inputs are read from raw_metadata) or raw_text + overrides for an ad-hoc score without a source record. method = 'rice' (default) or 'impact_effort'. overrides = {reach, impact, confidence, effort} — any subset; takes precedence over what was in the source. RICE tier thresholds: P0 > 25, P1 10..25, P2 3..10, P3 < 3. Every call with initiative_id appends a scored decision to the index at PLAN_PROJECT_ROOT/.mk-plan-master/index.json. Returns {initiative_id, method, score, breakdown, tier, rationale, stored}.
| Name | Required | Description | Default |
|---|---|---|---|
| initiative_id | No | ||
| raw_text | No | ||
| method | No | rice | |
| overrides | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses side effect of appending scored decisions to index on every call with initiative_id, and specifies tier thresholds. No annotations, so description carries burden. Lacks authorization or rate limit info, but sufficient for basic transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: first sentence states core purpose, then details mode, method, overrides, side effect, return. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: purpose, two usage modes, parameter details, side effects, output format, tier thresholds. No major gaps for agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Explains the purpose of each parameter: initiative_id for source-resolved, raw_text for ad-hoc, method enum values, overrides object with individual fields and precedence rule. Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly describes scoring initiatives with RICE or Impact-Effort, distinguishes two modes (source-resolved vs ad-hoc), and method options. Differentiates from siblings like add_initiative (add) and analyze_initiative (analyze).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context for when to use each parameter combination (initiative_id vs raw_text), and mentions default method and overrides. However, does not compare with sibling tools or specify when not to use this tool (e.g., for qualitative analysis).
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. Dates show when Glama detected each change.
15 tool updates
v0.1.0- First observed
add_initiative - First observed
analyze_initiative - First observed
analyze_roadmap_balance - First observed
fetch_initiative - First observed
generate_roadmap - First observed
generate_spec_draft - First observed
get_decision_signature - First observed
get_plan_context - First observed
get_plan_source_info - First observed
get_planning_history - First observed
get_telemetry - First observed
init_plan_knowledge - First observed
list_initiatives - First observed
rank_backlog - First observed
score_initiative
TDQS
Each tool has a clearly distinct purpose: adding, analyzing, fetching, scoring, ranking, generating, etc. There is no overlap in functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_initiative, analyze_initiative, get_plan_context). No mixing of conventions.
15 tools is a well-scoped set for a product planning server, covering the full lifecycle from initiative capture to roadmap generation without being overwhelming.
The tool surface is comprehensive: CRUD-like operations (add, fetch, list, score), analysis, ranking, roadmap generation, history tracking, and telemetry. No obvious gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Official DevSpeak MCP server — translate technical text into formal specs from any AI IDE or agent
AI workflow/MCP implementation package planner.
Your product team's shared strategic memory — an MCP server your AI tools reason over.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn AI-native specification framework that enables deep requirements analysis and structured project planning through intelligent Q\&A workflows. The MCP server provides tools for project initialization, requirement analysis, and the generation of living documentation like development plans and architecture specs.16Apache 2.0
- AlicenseAqualityDmaintenanceAI 規格大師 — MCP server bridging specs (Linear / JIRA / GitHub Issues / Notion / Markdown / Figma) to tests, with bidirectional traceability and a spec-quality coach. Sibling to mk-qa-master.182MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that provides project guardrails including prior art research, project status checks, next task retrieval, and quality gate enforcement for AI-assisted development.8MIT
- FlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for managing product initiatives, architecture decisions, requirements, and releases, enabling AI tools to interact with architectural documentation and planning.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kao273183/mk-plan-master'
If you have feedback or need assistance with the MCP directory API, please join our Discord server