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. Available to signed-in free accounts; daily usage limits and portfolio capacity still apply. 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

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?

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false): it discloses the OAuth write:drafts scope requirement, free-account availability with daily limits and capacity constraints, and the crucial behavioral trait that the draft never changes live positions but is saved and surfaced under 'Pending AI drafts' for explicit accept/discard. It also bounds ticker selection to Bullrun's priced universe.

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-loads the usage trigger and example phrasings before the behavioral details, which is the right ordering. It is on the long side and repeats the draft-only message ('DRAFT-ONLY', 'never changes any live position'), but nearly every sentence carries operational information.

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?

For a 4-parameter mutation-ish tool with no output schema, the description covers prerequisites, account limits, side effects, where the result appears, and what the user must do next. Nothing an agent needs to invoke it correctly or set expectations is missing.

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, but the description adds real meaning: tickers come only from Bullrun's priced stock/ETF universe and instrumentUniverse selects stocks-only, ETFs-only, or a mix. It does not add format detail for maxPositions or startingCash beyond what the schema states, keeping it at a 4 rather than a 5.

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?

States a specific verb and resource ('BUILD or PROPOSE a brand-new portfolio', 'Generates a REVIEWABLE paper-portfolio draft') with example user phrasings. It explicitly distinguishes itself from create_position_draft, which handles additions to an existing portfolio, so an agent can route correctly without opening either schema.

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?

Provides explicit when-to-use triggers, names the alternative (create_position_draft) and the condition that selects it, and gives concrete guidance for vague briefs (one round of up to three multiple-choice questions with defaults, skip already-specified dimensions).

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.