@bicon/mcp-composer 0.13.1 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +15 -7
  2. package/dist/index.mjs +849 -47
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,7 +1,13 @@
1
- # BICon Initiative Composer (MCP server)
1
+ # BICon Composer & Analyst (MCP server)
2
+
3
+ Shown in Claude Desktop as **BICon Composer & Analyst** from the release after 0.16.0 (named BICon Initiative
4
+ Composer until 2026-10-25; the npm package `@bicon/mcp-composer`, the extension
5
+ id (manifest `name`) `bicon-initiative-composer` and the tool names are
6
+ unchanged; only the label changed).
2
7
 
3
8
  An [MCP](https://modelcontextprotocol.io) server that helps an AI client — e.g.
4
- Claude Desktop — set up a portfolio initiative conversationally. Creating an
9
+ Claude Desktop — set up a portfolio initiative conversationally, and analyse a
10
+ full portfolio backup read-only (see the analysis tools below). Creating an
5
11
  initiative by hand means filling ~15 metadata fields **and rating 30
6
12
  sub-dimensions across four scoring dimensions** (plus optional economics and a
7
13
  large EU-AI-Act block); this server lets an assistant run that interview and
@@ -24,18 +30,20 @@ via API keys is a separate, security-reviewed phase.
24
30
  | Name | What it does |
25
31
  |---|---|
26
32
  | resource `initiative://schema` / tool `get_initiative_schema` | The field catalog: required fields, enum values, the four dimensions with their named sub-dimensions (EN/DE labels + help text, plus the wording the app uses in digital / innovation portfolios), the exact shape of every optional section, the EU-AI-Act vocabularies, and the handoff steps. **Read this first.** |
27
- | `assemble_initiative` | Compact spec (metadata + named sub-ratings 0–100 + confidence per dimension + optional sections, optionally the organisation's `context`) → fully-formed initiative validated against the API contract (`CreateInitiativeBody` from `@workspace/api-zod`). Mints the initiative id and every nested row id (decision-log entries, status reports, milestones, risks, follow-ups, incidents — a client never invents ids; an id given to a milestone or risk is a label a follow-up's `milestoneId` / `riskId` can point at, and the link follows the minted id), **derives** the four dimension scores (the app's own scoring function), accepts dates as dd/mm/yyyy, dd.mm.yyyy or yyyy-mm-dd, returns `{ok, initiative, derivedScores, warnings, errors, contextId}`. Pass `id` (an existing initiative's) only to **update** that initiative. |
33
+ | `assemble_initiative` | Compact spec (metadata + named sub-ratings 0–100 + confidence per dimension + optional sections, optionally the organisation's `context`) → fully-formed initiative validated against the API contract (`CreateInitiativeBody` from `@workspace/api-zod`). Mints the initiative id and every nested row id (decision-log entries, status reports, milestones, risks, follow-ups, incidents — a client never invents ids; quality ratings are keyed by their factor; an id given to a milestone or risk is a label a follow-up's `milestoneId` / `riskId` can point at, and the link follows the minted id), **derives** the four dimension scores (the app's own scoring function), accepts dates as dd/mm/yyyy, dd.mm.yyyy or yyyy-mm-dd, returns `{ok, initiative, derivedScores, warnings, errors, contextId}`. Pass `id` (an existing initiative's) only to **update** that initiative. |
28
34
  | `export_initiative_file` | Takes the **same compact spec**, assembles it and wraps the result in the app's single-initiative JSON envelope; returns `{ok, filename, json, importInstructions, derivedScores, warnings}`. There is one pipeline — a hand-edited initiative object is not an input, so client-supplied scores or unknown keys can never bypass assembly. |
29
35
  | `read_portfolio_context` | Takes the organisation's **portfolio-context file** (see below) and returns the interview plan for that organisation — its own labels, help texts and rating notes per sub-dimension, which sub-dimensions are switched off, its business units, categories, tags, skills (id + name), non-archived initiatives (id + name) and the capability map's capabilities (id, name, domain, importance, current → target maturity; context version 2), currency, discount rate, whether the EU-AI-Act module is on — plus a short **contextId** that stands in for the file in the two other tools. |
30
36
  | `composer_version` | Returns `{composerVersion, capabilities}`. Every *successful* tool result also carries `composerVersion`. |
31
37
  | `load_portfolio` | Reads the organisation's **full backup** (Import/Export → Backup → Export, a `bicon-portfolio-backup-YYYY-MM-DD.json`, format version 10 or newer) from a local `path` (inline `backup` JSON only for small files), runs it through the app's own sanitiser, strips author fields, and returns a short **portfolioId** plus a summary (counts by status, business unit and driver, skills, capabilities, saved portfolios, snapshots, currency, budget cap, export date). |
32
- | `query_initiatives` | Filters the loaded portfolio (status, business unit, category, driver, tags, saved portfolio, capability, skill, score ranges, overdue milestones / follow-ups, severe risks) and returns chosen columns, sorted, plus aggregates over the whole scope. At most 200 rows per call. |
38
+ | `query_initiatives` | Filters the loaded portfolio (status, business unit, category, driver, tags, saved portfolio, capability, skill, score ranges, overdue milestones / follow-ups, severe risks, quality gaps) and returns chosen columns, sorted, plus aggregates over the whole scope. At most 200 rows per call. |
33
39
  | `portfolio_readings` | Computes portfolio readings with the app's own libs: KPIs, concentration bars and HHI, the seven operating-model readings, capability impact, the risk register, early-warning signals and Board Actions. |
34
40
  | `rank_initiatives` | Runs the Prioritisation ranking and cut line (the organisation's rule book, budget envelope, exclusions and skill caps), with what-if inputs: cap, budget field, trade-off percent, skill FTE deltas, promoted / excluded ids, queue statuses, regulatory-first switch. |
35
- | `initiative_detail` | One initiative in full (by id, externalId or name), with its derived bucket, risks, milestones, follow-ups, status reports, decision log and links. |
41
+ | `initiative_detail` | One initiative in full (by id, externalId or name), with its derived bucket, risks, milestones, follow-ups, quality factors (with the gap flag), status reports, decision log and links. |
36
42
  | `compare_snapshots` | The backup's state ("now") against a snapshot, or two snapshots; without `from`, the newest snapshot before `to`: the four Steering KPIs with direction, counts by status, budget sum, initiatives added, left (retired, archived, deleted, out of the filter) or changed (status, scores beyond a threshold, budget, driver, business unit), and how the risk register moved. Initiatives match by id, else by a unique name. |
37
- | `board_slices` | The data of the Board Memo's chapters from the functions the memo and pack use: KPIs since the baseline snapshot, capacity (cut line, parked by reason, must-do block), milestones (missed, next 90 days), risks (heat map, top severe, issues and rises since the baseline), capability impact. Raw values, for the assistant to write a memo section, a committee note or slides. |
43
+ | `board_slices` | The data of the Board Memo's chapters from the functions the memo and pack use: KPIs since the baseline snapshot, capacity (cut line, parked by reason, must-do block), milestones (missed, next 90 days), risks (heat map, top severe, issues and rises since the baseline), quality gaps (top 10, per factor), capability impact. Raw values, for the assistant to write a memo section, a committee note or slides. |
38
44
  | `skill_allocation` | Per skill (all, or the ones named): FTE cap against pipeline demand, run FTE of systems in production and the baseline cut line's funded use; every initiative drawing on it (FTE, build or run, funded or parked and why: budget, a skill cap, a dependency, excluded); the Roadmap's monthly demand (24 months by default, up to 48; run teams open-ended only with `includeRunTeams`, off by default as on the page) with the months over cap and who makes up the peak; what-ifs with FTE deltas or excluded initiatives. |
45
+ | `capability_allocation` | Per capability of the map (all, the ones named, or one domain): current, projected and target maturity, gap, coverage, concentration and attributed spend by the Capabilities page's rules; every linked initiative (status, kind, the level it brings, planned quarter, spend, funded or parked in the baseline cut line), with `atRisk` when the projection needs parked pipeline work; the maturity path by quarter; what-ifs with excluded initiatives or another budget cap (which capabilities fall back, which gaps open). |
46
+ | `get_analysis_template` | The recipe of a ready-made analysis by key: `board_briefing`, `budget_what_if`, `skill_bottlenecks`, `capability_gaps`, `risk_review`, `since_snapshot`, `initiative_brief`. The same recipes are listed as prompts ("BICon: …" in the client's prompt menu) and offered as `nextSteps` after `load_portfolio`. |
39
47
 
40
48
  ### The portfolio context — how the Composer learns an organisation's settings
41
49
 
@@ -175,7 +183,7 @@ double-click, or Claude Desktop → Settings → Extensions → Install. Claude
175
183
  Desktop runs the server on its own built-in Node runtime, so there is nothing
176
184
  else to install and no configuration file to edit. Then **quit Claude Desktop
177
185
  completely and reopen** (see *Stale instances*), start a **new chat** and ask:
178
- *"Use the BICon Initiative Composer to help me set up a new initiative."*
186
+ *"Use the BICon Composer & Analyst to help me set up a new initiative."*
179
187
 
180
188
  Why the extension is primary: current Claude Desktop builds manage local MCP
181
189
  servers as Desktop Extensions and treat `claude_desktop_config.json` as their