Skip to main content
Glama

Create a portfolio draft

create_portfolio_draft

Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. "build me a portfolio", "put together a dividend portfolio", "draft a portfolio of AI stocks", "create a new portfolio for $10k". Generates a REVIEWABLE paper-portfolio draft for the signed-in Bullrun user from a natural-language brief (e.g. "a diversified European dividend portfolio"). Requires OAuth with the write:drafts scope and a Bullrun Pro account. This is DRAFT-ONLY and never changes any live position: the draft is saved to the user's account and appears in the Bullrun Portfolio tab under "Pending AI drafts", where the user reviews it and explicitly accepts it to create a new portfolio (or discards it). To suggest additions to an EXISTING portfolio instead, use create_position_draft. Tickers are chosen only from Bullrun's priced stock/ETF universe; pass instrumentUniverse for stocks only, ETFs only, or a mix. If the brief is vague, first ask ONE quick round of up to three multiple-choice questions (investing style, region focus, and size), each with a default the user can accept with "just pick for me", then build; skip any dimension the user already specified and do not interrogate across multiple turns.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
promptNoWhat kind of portfolio to draft, e.g. "a defensive dividend portfolio of large EU stocks". Optional: if you omit it, the server collects a quick style/region/size brief from the user directly (a native form on clients that support elicitation; otherwise it asks you to gather those first).
maxPositionsNoMaximum number of holdings (3-20, default 10).
startingCashNoStarting cash in USD (default 10000).
instrumentUniverseNoCandidate universe: stocks only, ETFs only, or a mix. Default mix unless the prompt says otherwise.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / instrumentUniverse
      Added value: +{
      +  "description": "Candidate universe: stocks only, ETFs only, or a mix. Default mix unless the prompt says otherwise.",
      +  "enum": [
      +    "stocks",
      +    "etfs",
      +    "mix"
      +  ],
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only indicate non-read-only and non-destructive. The description adds crucial context: draft-only (never changes live positions), requires OAuth write:drafts scope and Bullrun Pro account, and the draft appears under 'Pending AI drafts' after creation. This goes well beyond the sparse annotations.

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?

The description is front-loaded with purpose and usage context. It is fairly long but every sentence provides necessary information (scope, distinction, behavior, authentication, vague brief handling). Could be slightly more compact without losing clarity, but overall well-structured.

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?

Given the tool's complexity (creation with multiple options), the description covers all essential aspects: when to use, what it does, authentication requirements, draft lifecycle, alternative tool, universe constraints, and vague brief handling. No output schema needed as the description explains the outcome (draft saved and viewable).

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 baseline is 3. The description adds extra value: explains the prompt parameter's optional behavior (server-collected if omitted), clarifies the instrumentUniverse default (mix unless specified), and provides context for the starting cash and max positions defaults. A slight improvement over the schema alone.

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 explicitly states the tool builds or proposes a brand-new portfolio from a natural-language brief. It uses specific verbs like 'BUILD' and 'PROPOSE', clearly identifies the resource (portfolio draft), and distinguishes itself from the sibling create_position_draft.

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 provides explicit when-to-use guidance ('when the user wants you to BUILD or PROPOSE a brand-new portfolio'), alternative tool for existing portfolios (create_position_draft), and handling of vague briefs with a quick multiple-choice question strategy.

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.