Skip to main content
Glama

score_portfolio

Read-onlyIdempotent

Score several AI initiatives as one AI BVF v1.0 portfolio and return the board-level position: counts of Accelerate / Fix / Stop, aggregate modelled EUR value range, mean decision score, the highest-value initiative, the highest-risk initiative, and every individual result. CALL THIS when the user has a portfolio document and needs to know what it contains before deciding funding or order, instead of looping score_initiative one initiative at a time. The single readiness value applies across every initiative: it changes capture rates and the pace-layer drag, so measure it with infer_readiness first when process data exists. The portfolio must carry organization.revenue_eur for EUR values; initiatives with missing revenue or invalid taxonomy are reported as skipped, never silently counted. Run validate_portfolio first only when the document shape is uncertain, then call sequence_portfolio when the verdicts need turning into a 90-day order. Deterministic calculation with no authentication. Anonymous usage telemetry may be sent; set AIBVF_TELEMETRY_DISABLE=1 to opt out.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
portfolioYesAI BVF v1.0 portfolio with organization and initiatives. Each initiative carries id, name, function, ai_tier and four scores, supplied as numbers or { value, confidence } objects. Retain each initiative's work_architecture, pillar_basis and optional signal_completeness. pillar_basis marks given or estimated values; estimated pillars are recalculated for the current context and retain an input-quality reduction. Supplied values without provenance are caller-provided, with no claim of evidence verification. Accelerate requires the pillar thresholds and all four work-architecture checks. Missing work-design evidence returns Fix for an otherwise green case. organization.revenue_eur is required for benefit modelling. Validate unfamiliar documents first.
readinessYesOrganisational readiness applied to every initiative in the portfolio. Honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. The portfolio schema does not carry per-initiative readiness; this single value sets the capture rate for the whole portfolio and, paired with the ai_tier of each initiative, its pace-layer drag — lower readiness against a higher tier discounts the modelled EUR value.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
totalYesTotal initiatives in the portfolio (scored + skipped).
validYesTrue when the portfolio passed schema validation. False means no initiatives were scored.
summaryYes
feedbackNoOptional three-question feedback route, present only when any initiative was Fix or Stop. The page records the response anonymously only when the user chooses an answer; no assessment data is attached.
readinessYesReadiness value applied across all initiatives.
bvf_versionYesAI BVF protocol version used.
organizationYesEcho of the portfolio organisation fields applied to scoring.
interpretationNoMeaning and limits of compatibility fields. Present these labels when explaining the result.
validation_errorsNoEmpty when valid; otherwise one entry per schema violation.
advisory_next_stepNoOptional CTA, present only when any initiative was Fix or Stop.
scored_initiativesYesPer-initiative scoring result.
skipped_initiativesYesInitiatives that could not be scored, with the reason. Empty when all initiatives scored.
aggregate_net_value_eurYesArithmetic sum of benefit hypotheses. Reconcile overlapping scope, double counting and project costs before using this as a portfolio business case.
highest_risk_initiativeNoScored initiative most at risk: worst classification (Stop > Fix > Accelerate), tie-broken by lowest decision_confidence. Omitted when none were scored.
top_initiative_by_valueNoScored initiative with the highest mid-point readiness-adjusted EUR benefit. Omitted when none were scored.
mean_decision_confidenceYesMean decision score across scored initiatives (0–100); 0 when none were scored.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • changedInput schema / properties / portfolio / description
      Previous value: -"A portfolio document conforming to the AI BVF v1.0 schema: bvf_version, organization (name, industry, optional revenue_eur), and a non-empty initiatives array. Each initiative carries id, name, function, ai_tier, and a scores object whose four pillars are each either a bare number (0–100) or an object { value: 0–100 }; both shapes are accepted everywhere. Every initiative is run through the same rule as score_initiative — governance_risk ≥ 70 OR financial_return ≤ 20 → Stop; all of strategic_alignment/financial_return/change_enablement ≥ 60 with governance_risk ≤ 40 → Accelerate; else Fix — and the verdicts are aggregated into portfolio counts. organization.revenue_eur is required to model EUR value; initiatives that cannot be scored (missing revenue, unknown function/ai_tier) appear in skipped_initiatives rather than scored_initiatives. Validate first with validate_portfolio if the document may be malformed. Schema: https://www.aibvf.com/protocol."New value: +"AI BVF v1.0 portfolio with organization and initiatives. Each initiative carries id, name, function, ai_tier and four scores, supplied as numbers or { value, confidence } objects. Retain each initiative's work_architecture, pillar_basis and optional signal_completeness. pillar_basis marks given or estimated values; estimated pillars are recalculated for the current context and retain an input-quality reduction. Supplied values without provenance are caller-provided, with no claim of evidence verification. Accelerate requires the pillar thresholds and all four work-architecture checks. Missing work-design evidence returns Fix for an otherwise green case. organization.revenue_eur is required for benefit modelling. Validate unfamiliar documents first."
    • changedOutput schema / properties / aggregate_net_value_eur / description
      Previous value: -"Sum of net EUR value across scored initiatives, low/high."New value: +"Arithmetic sum of benefit hypotheses. Reconcile overlapping scope, double counting and project costs before using this as a portfolio business case."
    • addedOutput schema / properties / interpretation
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Meaning and limits of compatibility fields. Present these labels when explaining the result.",
      +  "type": "object"
      +}
    • changedOutput schema / properties / mean_decision_confidence / description
      Previous value: -"Mean decision confidence across scored initiatives (0–100); 0 when none were scored."New value: +"Mean decision score across scored initiatives (0–100); 0 when none were scored."
    • changedOutput schema / properties / scored_initiatives / items / properties / applied_modules / description
      Previous value: -"BVF scoring modules that fired for this initiative."New value: +"Scoring-rule and sector-context labels. Sector labels do not certify clinical validation or regulatory compliance."
    • addedOutput schema / properties / scored_initiatives / items / properties / audit
      Added value: +{
      +  "description": "Reproducibility record: engine version, the rules that fired, and the resolved inputs. Deterministic, no timestamps. If the verdict is challenged months later, the same inputs on the same engine version reproduce it exactly.",
      +  "properties": {
      +    "bvf_version": {
      +      "type": "string"
      +    },
      +    "engine": {
      +      "type": "string"
      +    },
      +    "engine_version": {
      +      "type": "string"
      +    },
      +    "inputs_used": {
      +      "description": "The resolved inputs the result was computed on, including estimated pillar values.",
      +      "type": "object"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "rules_fired": {
      +      "description": "The rules that actually fired, in order: estimation, gates, classification, value arithmetic.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / caveat
      Added value: +{
      +  "description": "Present only when signal_completeness was low: warns the verdict rests on soft inputs and confidence was reduced.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / scored_initiatives / items / properties / decision_confidence / description
      Previous value: -"Confidence in the verdict (0–100)."New value: +"Heuristic decision score, 0 to 100, adjusted for input quality. This score has no probability calibration."
    • changedOutput schema / properties / scored_initiatives / items / properties / net_value_eur / description
      Previous value: -"Modelled net EUR value, low/high."New value: +"Modelled readiness-adjusted EUR benefit, low/high."
    • addedOutput schema / properties / scored_initiatives / items / properties / pillar_basis
      Added value: +{
      +  "description": "Per pillar: \"given\" (caller supplied it) or \"estimated\" (deterministic prior). When any pillar is estimated, tell the user which, and ask for evidence on those to firm up the verdict.",
      +  "properties": {
      +    "change_enablement": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    },
      +    "financial_return": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    },
      +    "governance_risk": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    },
      +    "strategic_alignment": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / scores_used
      Added value: +{
      +  "description": "The four pillar values the verdict was actually computed on, whether given by the caller or estimated by the engine. Show these to the user when any pillar was estimated.",
      +  "properties": {
      +    "change_enablement": {
      +      "type": "number"
      +    },
      +    "financial_return": {
      +      "type": "number"
      +    },
      +    "governance_risk": {
      +      "type": "number"
      +    },
      +    "strategic_alignment": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / sensitivity
      Added value: +{
      +  "description": "What moves this verdict, computed deterministically: the value if readiness were one notch worse, the value at revenue minus 20 percent, and the nearest single-pillar movements that flip the classification. Boards trust ranges with visible assumptions over point estimates; show this.",
      +  "properties": {
      +    "readiness_one_notch_down": {
      +      "description": "Null when readiness is already siloed.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "revenue_minus_20pct": {
      +      "type": "object"
      +    },
      +    "verdict_flips": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / signal_completeness
      Added value: +{
      +  "description": "Input-quality factor after estimated provenance, pillar quality and any explicit factor are combined conservatively.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / work_architecture
      Added value: +{
      +  "description": "The work architecture gate across workflow, roles, human decision rights and performance measures. A stated gap or missing evidence blocks Accelerate.",
      +  "properties": {
      +    "blocks_accelerate": {
      +      "type": "boolean"
      +    },
      +    "checks": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "gaps": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "gate": {
      +      "type": "string"
      +    },
      +    "next_question": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "unknown",
      +        "partial",
      +        "gap",
      +        "ready"
      +      ],
      +      "type": "string"
      +    },
      +    "unknowns": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "blocks_accelerate",
      +    "checks",
      +    "gaps",
      +    "unknowns",
      +    "gate"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / top_initiative_by_value / description
      Previous value: -"Scored initiative with the highest mid-point net EUR value. Omitted when none were scored."New value: +"Scored initiative with the highest mid-point readiness-adjusted EUR benefit. Omitted when none were scored."
    • changedOutput schema / properties / top_initiative_by_value / properties / net_value_eur / description
      Previous value: -"Net EUR value range for the top initiative."New value: +"Readiness-adjusted EUR benefit range for the top initiative."
  2. Changed1 schema field changed
    • changedOutput schema / properties / feedback / description
      Previous value: -"Optional three-question feedback route, present only when any initiative was Fix or Stop. The link opens a prefilled email; no assessment data is added and no response is recorded unless the user chooses to send it."New value: +"Optional three-question feedback route, present only when any initiative was Fix or Stop. The page records the response anonymously only when the user chooses an answer; no assessment data is attached."
  3. Changed1 schema field changed
    • changedOutput schema / properties / feedback / description
      Previous value: -"Optional one-question feedback route, present only when any initiative was Fix or Stop. The link opens a prefilled email; no response is recorded unless the user chooses to send it."New value: +"Optional three-question feedback route, present only when any initiative was Fix or Stop. The link opens a prefilled email; no assessment data is added and no response is recorded unless the user chooses to send it."
  4. Changed1 schema field changed
    • addedOutput schema / properties / feedback
      Added value: +{
      +  "description": "Optional one-question feedback route, present only when any initiative was Fix or Stop. The link opens a prefilled email; no response is recorded unless the user chooses to send it.",
      +  "properties": {
      +    "question": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "question",
      +    "url"
      +  ],
      +  "type": "object"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / portfolio / description
      Previous value: -"A portfolio document conforming to the AI BVF v1.0 schema: bvf_version, organization (name, industry, optional revenue_eur), and a non-empty initiatives array. Each initiative carries id, name, function, ai_tier, and a scores object whose four pillars each carry a numeric value (0–100). Every initiative is run through the same rule as score_initiative — governance_risk ≥ 70 OR financial_return ≤ 20 → Stop; all of strategic_alignment/financial_return/change_enablement ≥ 60 with governance_risk ≤ 40 → Accelerate; else Fix — and the verdicts are aggregated into portfolio counts. organization.revenue_eur is required to model EUR value; initiatives that cannot be scored (missing revenue, unknown function/ai_tier) appear in skipped_initiatives rather than scored_initiatives. Validate first with validate_portfolio if the document may be malformed. Schema: https://www.aibvf.com/protocol."New value: +"A portfolio document conforming to the AI BVF v1.0 schema: bvf_version, organization (name, industry, optional revenue_eur), and a non-empty initiatives array. Each initiative carries id, name, function, ai_tier, and a scores object whose four pillars are each either a bare number (0–100) or an object { value: 0–100 }; both shapes are accepted everywhere. Every initiative is run through the same rule as score_initiative — governance_risk ≥ 70 OR financial_return ≤ 20 → Stop; all of strategic_alignment/financial_return/change_enablement ≥ 60 with governance_risk ≤ 40 → Accelerate; else Fix — and the verdicts are aggregated into portfolio counts. organization.revenue_eur is required to model EUR value; initiatives that cannot be scored (missing revenue, unknown function/ai_tier) appear in skipped_initiatives rather than scored_initiatives. Validate first with validate_portfolio if the document may be malformed. Schema: https://www.aibvf.com/protocol."
  6. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and idempotentHint=true already declaring safety, the description still adds meaningful behavior: readiness 'changes capture rates and the pace-layer drag,' missing revenue or invalid taxonomy are 'reported as skipped, never silently counted,' and anonymous telemetry can be disabled via AIBVF_TELEMETRY_DISABLE=1. It does not spell out the full Accelerate/Fix/Stop decision thresholds, but the underlying rubric is beyond reasonable description scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and the output set, then execution guidance, then caveats and telemetry. Mostly dense and every sentence carries operational weight, though the telemetry sentence is the least relevant to invoking the tool correctly and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested two-parameter portfolio tool with an output schema present and annotations covering safety, the description supplies the cross-cutting constraints an agent needs: pipeline ordering relative to infer_readiness/validate_portfolio/sequence_portfolio, the single readiness applying portfolio-wide, and what happens to bad data. An output schema exists so return values need not be explained. Only minor gaps (e.g., expected range or edge-case behavior of the skipped set) remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter entries already document both fields in depth, establishing a baseline of 3. The description goes beyond that by emphasizing what is easy to miss operationally: 'The single readiness value applies across every initiative' and that organization.revenue_eur is required for EUR values, warning that missing revenue yields skipped rather than silent counts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Score several AI initiatives as one AI BVF v1.0 portfolio') and immediately enumerates the exact outputs (counts of Accelerate/Fix/Stop, EUR range, mean score, top-value and top-risk initiative, individual results). It explicitly distinguishes itself from the sibling score_initiative by telling the agent to use this instead of looping that tool one initiative at a time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-to-use trigger ('when the user has a portfolio document and needs to know what it contains before deciding funding or order'), names the anti-pattern (looping score_initiative), and routes to the right adjacent tools: infer_readiness first when process data exists, validate_portfolio only when the document shape is uncertain, and sequence_portfolio when verdicts need a 90-day order.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.