Skip to main content
Glama

assemble_portfolio

Read-onlyIdempotent

Assemble a valid AI BVF v1.0 portfolio document from loose inputs, deterministically. Agents arrive with initiative names, plain-language functions and half the pillar scores, then hand-build the portfolio JSON and get the shape wrong; this tool builds it right. Give it the organisation (name plus industry in canonical or everyday language) and one entry per initiative (name, function, ai_tier, plus whatever pillar scores you actually have as bare numbers) and it returns the finished document: aliases resolved through the same mapping as map_to_taxonomy, ids generated from names and deduplicated, missing pillars estimated from readiness, tier, function and disclosed AI BVF planning assumptions with the estimation reported per initiative in estimated_pillars, and the whole document validated before it is returned. CALL THIS when the user lists several AI initiatives in conversation and you need a portfolio document for validate_portfolio, score_portfolio or sequence_portfolio, instead of composing the JSON by hand. Do NOT invent pillar scores to fill it: pass only the numbers the user gave you and let the estimation carry the rest honestly, the estimated pillars carry low confidence and scoring haircuts accordingly. Unresolvable inputs come back as issues with suggestions; ask the user to choose rather than guessing. Every default the assembler applies is named in plain language in assumptions: surface them to the user, the assembler structures inputs and never makes hidden business judgements. This tool creates a document in the response only: nothing is stored, nothing is edited, no state exists between calls. Pure deterministic calculation, no network, auth, or side effects.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
readinessNoOrganisational readiness, canonical or plain language (bureaucratic resolves to siloed). Drives estimation of missing pillars. Defaults to traditional.
initiativesYesOne entry per initiative, from whatever the user gave you. Only name, function and ai_tier are required.
organizationYesOrganisation identity and context shared by every initiative in the assembled portfolio.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
auditYesReproducibility 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.
issuesYesUnresolved inputs, each with path, message and suggestions where the taxonomy has them.
guidanceYes
portfolioNoThe assembled BVF v1.0 document, ready for validate_portfolio, score_portfolio and sequence_portfolio. Null when assembly is blocked on issues.
validationNovalidate() run on the assembled document.
assumptionsYesEvery default the assembler applied, in plain language. Surface these to the user: what was not given is named here.
bvf_versionYes
resolutionsYesEvery alias resolution performed, in plain language.
readiness_usedYes
estimated_pillarsYesInitiative id to the pillars the assembler estimated. Gather evidence for these, or expect scoring to haircut confidence.

TDQS

A4.7/5.0
Behavior5/5

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

Even though the annotations already indicate readOnlyHint, idempotentHint, and destructiveHint, the description expands with specifically missing behavior: missing pillars are estimated deterministically and reported, unresolved inputs become issues with suggestions, all defaults appear in assumptions, no hidden business judgements happen, and no state or side effects exist. It not only matches but strengthens the annotation profile.

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

Conciseness5/5

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

The description is long, but its length is justified by rich behavioral content. The first sentence defines the resource and guarantee; the middle lists transformation and outputs; the end declares safety and side effects. It is front-loaded with the decision-relevant sentence and every subsequent sentence adds a distinct capability or constraint. No filler is present.

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

Completeness5/5

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

Toward an the agent needs to call this correctly: inputs, what gets resolved, what gets estimated, where those estimate appear, that validation happens, unresolved inputs return issues, and that no state/network/auth are involved. An output schema already covers the return shape, so the description need not repeat it. The context is complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100% and the schema itself documents organization, initiatives, defaults, and the rule against inventing scores. The description adds a better user-facing summary for 'pass only the numbers the user gave you' and 'unresolvable inputs come back' but most of that is already true in the schema. It gives useful framing, but no new type-level or format-level semantic.

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 opens with a specific verb and resource: 'Assemble a valid AI BVF v1.0 portfolio document from loose inputs, deterministically.' It immediately separates the tool from producers of individual scores or continuous operations like sequence_portfolio and validates, and from sibling tools by stating that it resolves aliases same as map_to_taxonomy and builds what later portfolio tools need.Product.

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?

It explicitly says 'CALL THIS when the user lists several AI initiatives in conversation and you need a portfolio document for validate_portfolio, score_portfolio or sequence_portfolio, instead of composing the JSON by hand.' It also gives an explicit exclusion: do not invent pillar scores; pass only evidence-based numbers. This is almost optimal routing guidance, including cautionary instructions.

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.

TDQS

A4.7/5.0
Disambiguation4/5

Each tool has a clear trigger and purpose, with descriptions explicitly cross-referencing when to use which. However, assess_ai_initiative, score_initiative, and score_portfolio all produce verdicts and could be confused without carefully reading the canonical-vs-conversational distinction.

Naming Consistency5/5

All 13 tools follow a consistent snake_case verb_noun pattern: assemble, assess, calculate, diagnose, get, infer, list, map, recommend, score, sequence, validate. No mixed conventions or vague verbs.

Tool Count5/5

13 tools is well within the ideal range for a domain of this complexity. Each tool covers a distinct stage of the AI investment workflow—taxonomy, assessment, scoring, portfolio, sequencing, diagnostics—without redundancy or bloat.

Completeness5/5

The tool surface covers the full lifecycle: mapping input language, assembling and validating portfolio documents, assessing and scoring initiatives, diagnosing processes, measuring readiness, calculating pace-layer drag, recommending improvements, and sequencing portfolios. No obvious dead ends or missing operations for the stated domain.