Skip to content

microscope MCP

Add microscope capabilities to claude code, codex, copilot, ... as spec driven development provider.

Exposed tools

The MCP server exposes 86 tools across four modules.

Strategy

ToolDescription
GetOkrGet the list of OKR (Objective Key Results) in the system
GetOkrByIdGet an OKR by its identifier
GetPublishedOkrsGet the list of published OKRs in the system
CreateOkrCreate an OKR in the system
UpdateOkrUpdate an existing OKR in the system
DeleteOkrDelete an OKR from the system
ToggleOkrPublishedToggle the published state of an OKR in the system
AddKeyResultAdd a Key Result to an existing OKR in the system
UpdateKeyResultUpdate a Key Result belonging to an OKR in the system
DeleteKeyResultDelete a Key Result from an existing OKR in the system
GetStrategicInitiativesGet the list of strategic initiatives in the system
GetStrategicInitiativeByIdGet a strategic initiative by its identifier
CreateStrategicInitiativeCreate a new strategic initiative in the system
UpdateStrategicInitiativeUpdate an existing strategic initiative in the system
UpdateStrategicInitiativeMetadataUpdate strategic initiative metadata in the system
DeleteStrategicInitiativeDelete an existing strategic initiative in the system
AddStrategicInitiativeActionPlanItemAdd an action plan item to a strategic initiative
UpdateStrategicInitiativeActionPlanItemUpdate an action plan item belonging to a strategic initiative
RemoveStrategicInitiativeActionPlanItemRemove an action plan item from a strategic initiative
SetStrategicInitiativeActionPlanItemStatusSet the status of an action plan item belonging to a strategic initiative
AddTagToStrategicInitiativeActionPlanItemAdd a tag to an action plan item belonging to a strategic initiative
RemoveTagFromStrategicInitiativeActionPlanItemRemove a tag from an action plan item belonging to a strategic initiative
AddStrategicInitiativeGovernanceInstanceAdd a governance instance to a strategic initiative
UpdateStrategicInitiativeGovernanceInstanceUpdate a governance instance belonging to a strategic initiative
UpdateStrategicInitiativeGovernanceInstanceMetadataUpdate governance instance metadata in the system
RemoveStrategicInitiativeGovernanceInstanceRemove a governance instance from a strategic initiative
GetGovernanceInstanceByIdGet a governance instance by strategic initiative identifier and governance instance identifier
GetPortfolioKpiGet the portfolio KPIs (aggregated metrics) in the system

Product

ToolDescription
GetPrdsGet the list of PRDs in the system
GetPrdByIdGet a PRD by its identifier
CreatePrdCreate a new PRD
UpdatePrdUpdate an existing PRD
UpdatePrdMetadataUpdate metadata of an existing PRD
DeletePrdDelete a PRD in the system
GetIssuesGet the list of Issues (bugs and business problems) in the system
GetIssueByIdGet an Issue by its identifier
CreateIssueCreate a new Issue (bug or business problem) to manage the run, with its full initial state
UpdateIssueUpdate an existing Issue title and content
UpdateIssueMetadataUpdate metadata of an existing Issue: type, linked PRD/Workload/ServiceIncident, lifecycle dates and status
DeleteIssueDelete an Issue in the system
GetProductKpiGet the product KPIs (aggregated PRD metrics) in the system

Tech

ToolDescription
GetWorkloadsGet the list of workloads in the system
GetWorkloadByIdGet a workload by its identifier
CreateWorkloadCreate a new workload in the system
UpdateWorkloadUpdate an existing workload in the system
DeleteWorkloadDelete an existing workload in the system
AddComponentAdd a component to a workload in the system
UpdateComponentUpdate a component belonging to a workload in the system
DeleteComponentDelete a component from a workload in the system
AddDependencyAdd a dependency between workloads in the system
RemoveDependencyRemove a dependency between workloads in the system
GetServiceIncidentsGet the list of service incidents in the system
GetServiceIncidentByIdGet a service incident by its identifier
CreateServiceIncidentCreate a new service incident in the system
UpdateServiceIncidentUpdate a service incident content in the system
UpdateServiceIncidentMetadataUpdate service incident metadata in the system
DeleteServiceIncidentDelete a service incident from the system
GetTechKpiGet technical KPIs (MTBF and MTTR) across workloads

Experience

ToolDescription
GetPersonaeList all personae
GetPersonaByIdGet a persona by its identifier
CreatePersonaCreate a new persona
UpdatePersonaUpdate an existing persona's title and content
UpdatePersonaMetadataUpdate an existing persona's metadata (type)
DeletePersonaDelete a persona by its identifier
GetJourneysList all customer/user journeys
GetJourneyByIdGet a journey by its identifier, including its steps, pain points and opportunities
CreateJourneyCreate a new customer/user journey
UpdateJourneyUpdate a journey's title, description and experience health scores (CSAT, CES, NPS)
DeleteJourneyDelete a journey by its identifier
AddJourneyStepAdd a step to a journey and return the new step identifier
UpdateJourneyStepUpdate a step of a journey
RemoveJourneyStepRemove a step from a journey
AddPainPointToStepAdd a pain point to a journey step
RemovePainPointFromStepRemove a pain point from a journey step
ToggleResolvePainPointResolve or reopen a pain point on a journey step
AddOpportunityToStepAdd an opportunity to a journey step
RemoveOpportunityFromStepRemove an opportunity from a journey step
LinkPersonaToStepLink a persona to a journey step
UnlinkPersonaFromStepUnlink the persona from a journey step
LinkWorkloadToStepLink a workload to a journey step
UnlinkWorkloadFromStepUnlink the workload from a journey step

Settings

ToolDescription
GetTemplatesGet the list of content templates in the system
GetTemplateByIdGet a content template by its identifier
CreateTemplateCreate a new content template in the system
UpdateTemplateUpdate an existing content template in the system
DeleteTemplateDelete an existing content template in the system

Un modèle cible un seul type d'agrégat — Prd, Issue, StrategicInitiative, ServiceIncident, Workload, Persona ou DocumentationPage — et porte son propre type d'éditeur (Block, Markdown ou RichText). Lisez un modèle avant de rédiger du contenu pour respecter la structure propre à l'organisation.


Add MCP

Add microscope MCP to project .mcp.json:

json
{
  "mcpServers": {
    "microscope": {
      "type": "http",
      "url": "http://localhost:5095/mcp",
      "oauth": {
        "clientId": "microscope-mcp-client"
      }
    }
  }
}

Add Skill: PRD → backlog

console
mkdir .claude/skills/mcsp-specify
touch .claude/skills/mcsp-specify/SKILL.md

Then copy in .claude/skills/mcsp-specify/SKILL.md this content :


```markdown
---
name: mcsp-specify
description: >-
Turn a Product Requirement Document (PRD) into an implementation-ready US/TS
spec, then build it. Fetch the PRD from the Microscope MCP server, brainstorm
its decomposition into User Stories and Technical Stories WITH the user, write
the result as an iterable markdown spec under .microscope/specs/{prd_name}/, and
once the user validates that spec, start implementing the stories in order.
Use this skill WHENEVER the user mentions a PRD, decomposing / slicing / breaking
down a feature or initiative, a backlog of user or technical stories, "from
Microscope" or the Microscope MCP server, or wants to go from a product spec to
code in this repo — even if they don't say "skill" or name every step. Code
conventions are NOT here: follow the repo's CLAUDE.md rules when implementing.
---

# Microscope: PRD → US/TS spec → implementation

This skill owns the path **spec → sign-off → code**:

1. **Fetch** the PRD (and its context) from the **Microscope MCP server**.
2. **Brainstorm** the decomposition into **User Stories (US)** and **Technical Stories (TS)** with the user.
3. **Write** it as a living markdown spec at `.microscope/specs/{prd_name}/spec.md` that the user iterates on.
4. On **validation**, **implement** the stories in the agreed order, updating the spec's status as you go.

The spec file is the contract between brainstorming and coding. Never start implementing before the user has validated it. **This skill does not define code conventions** — architecture, slicing, and coding rules live in the repo's `CLAUDE.md`; read and follow those during implementation.

---

## Phase 0 — Connect to Microscope (brief)

Confirm a **Microscope MCP server** is connected and list its tools. If it isn't, tell the user how to enable it and stop. The PRD is fetched with the **`GetPrdById`** tool.

---

## Phase 1 — Fetch the PRD + context via MCP

Get the target PRD by calling **`GetPrdById`** with the PRD's id. If the user didn't give an id, list the candidate PRDs (via the relevant MCP read tool) and ask which to work on, then call `GetPrdById`.

Pull the context that keeps the spec traceable, since a PRD never stands alone:
- the **workloads / components** likely impacted by the PRD's implementation (for traceability and to flag potential cross-cutting concerns early)

Restate the PRD back to the user in your own words — goal, persona(s), problem, in/out of scope, success metrics, constraints/NFRs — and flag gaps or contradictions before slicing. An ambiguous PRD makes a bad spec.

---

## Phase 2 — Brainstorm the decomposition (with the user)

Decompose top-down, keeping the codebase's ubiquitous language:

 ─ PRD
     ├─ US  (As a <persona>, I want <capability>, so that <benefit>)
     └─ TS  (technical enabler: schema, refactor, GraphQL, security, perf, observability…)

Guidance to apply while slicing:
- **US** get **Gherkin acceptance criteria** (Given/When/Then) with at least one edge/negative case.
- **TS** state the technical outcome *and why it unblocks user value* — enablers only, no speculative gold-plating.
- Run each story through **INVEST**; if it fails, re-slice.
- Slice **vertically** (a story cuts through all layers and is shippable/testable on its own), not horizontally. Start with a **walking skeleton** — the thinnest end-to-end path.
- Note per story: rough **size/effort**, a **WSJF/RICE** signal consistent with the Product priority matrix, **dependencies**, **risks/assumptions**.
- Propose a **sequence**: walking skeleton → highest priority → dependents.

This is dialogue, not monologue — propose, then let the user push back. The output of this phase goes straight into the spec file.

---

## Phase 3 — Write & iterate the spec file

Create `.microscope/specs/{prd_name}/spec.md`, where `{prd_name}` is a slug of the PRD title/id (lowercase, hyphenated). Create the folders if missing. If a spec already exists for this PRD, open it and iterate on it rather than overwriting.

Use this structure exactly:

---
prd: <PRD id or title>
prd_source: microscope-mcp
status: draft        # draft | validated | in-progress | done
updated: <YYYY-MM-DD>
---

# Spec — <PRD title>

## 1. Context
Goal, target persona(s), problem, in-scope / out-of-scope, success metrics, constraints & NFRs.

## 2. Decomposition
- **[US-1]** As a <persona>, I want <capability>, so that <benefit>.
  - **AC:** Given … When … Then … (+ edge case)
  - size: S/M/L · WSJF: <n> · depends on: — · status: todo
- **[TS-1]** <technical outcome> — unblocks <US/feature>.
  - size: S · depends on: — · status: todo

### Feature B — <name>


## 4. Sequence
Ordered list of story IDs (walking skeleton first), with rationale.

## 5. Open questions / risks

Then ask the user to review: reprioritize, cut scope, edit ACs. Update the file on each round and bump `updated`. Keep `status: draft` until they explicitly approve.

**Validation gate:** treat the spec as validated only when the user clearly approves (in chat) or sets `status: validated` in the file. Until then, do not write production code.

---

## Phase 4 — Implement the validated spec

Once validated, set `status: in-progress`, then implement the stories **in the sequence from §4**, one vertical slice at a time, foundational/walking-skeleton first.

- **Follow `CLAUDE.md`.** All architecture, vertical-slice/CQRS patterns, persistence, testing, I18N and frontend conventions live there — read the relevant rules and mirror existing code. Do not invent conventions here.
- After each story: build + tests green, then mark its `status: done` in the spec and reference the story ID (e.g. `US-1`) in the commit message.
- Keep diffs reviewable — one slice per logical commit. Don't touch unrelated code unless a TS explicitly calls for it.
- When every story is `done`, set the spec `status: done`. If the user wants the backlog reflected back in Microscope, offer to write it via MCP (mirroring the bounded-context commands), respecting MCP guardrails.

---

## Guardrails
- Discover MCP tool names — never hardcode guesses.
- The spec file is the single source of truth between brainstorm and code; keep it current.
- No production code before the validation gate.
- Conventions belong to `CLAUDE.md`, not to this skill.
- If the PRD is too thin to slice responsibly, say so and ask for the missing pieces instead of inventing requirements.

Start Spec Driven Development

Start claude code session for your project and ask :

"Start the specification of the PRD with id : {your_prd_id}"

Or just :

/mcsp-specify

Made from Lyon - France with ❤️