Skip to main content
Glama

Create a position draft

create_position_draft

Generate reviewable suggested additions for an existing portfolio, saved as pending drafts you can accept or discard without changing live holdings.

Instructions

Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. "what should I buy next", "suggest a stock or ETF for my portfolio", "what should I add", "recommend a position", "any ideas to round out my holdings". Generates REVIEWABLE suggested additions for one existing Bullrun 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: the suggested position(s) are saved to the user's account and appear in the Bullrun Portfolio tab under Pending AI drafts, where the user reviews and accepts them into the target portfolio or discards them. It never changes live holdings by itself. To draft a whole new portfolio from scratch use create_portfolio_draft; to test whether a specific named ticker fits, use get_portfolio_analytics with candidateTicker. Pass instrumentUniverse for stocks only, ETFs only, or a mix. If it is unclear, first confirm which portfolio (use list_portfolios when the user has more than one) and how many ideas (a single best idea or a few) in ONE quick step; otherwise just build.

Input Schema

NameRequiredDescriptionDefault
portfolioIdYesThe Bullrun portfolio id to propose additions for. Use list_portfolios first if unsure.
maxPositionsNoHow many suggested additions to save, 1-5. Use 1 for a single-position idea; default 3.
instrumentUniverseNoCandidate universe: stocks only, ETFs only, or a mix. Default mix.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.7.0
    • addedInput schema / properties / instrumentUniverse
      Added value: +{
      +  "description": "Candidate universe: stocks only, ETFs only, or a mix. Default mix.",
      +  "enum": [
      +    "stocks",
      +    "etfs",
      +    "mix"
      +  ],
      +  "type": "string"
      +}
  2. First observedv0.1.0

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: discloses the required write:drafts OAuth scope, free-account availability, daily usage limits and portfolio capacity constraints, and most importantly spells out the DRAFT-ONLY contract — where the output lands (Pending AI drafts in the Portfolio tab), that the user must accept or discard, and that live holdings are never changed. This is exactly the missing context annotations cannot carry.

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 trigger condition, then scope, limits, draft behavior, and alternatives in a logical order; nearly every sentence carries decision-relevant information. The quoted user-phrase list is slightly long but each entry is a distinct disambiguation signal, so the length is largely earned.

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?

With no output schema, the description supplies the full picture an agent needs: preconditions (OAuth scope, one portfolio must exist, limits), what the call produces, where it appears, and that it is non-destructive to live holdings. Nothing material is left to inference.

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 parameter mechanics are already documented. The description still adds useful semantics by mapping user intent ('how many ideas, a single best idea or a few') onto maxPositions and restating the stocks/ETFs/mix choice for instrumentUniverse, which helps translate a natural-language request into arguments.

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 action (generate reviewable suggested additions) against a specific resource (one existing Bullrun portfolio), and explicitly excludes sibling behavior by naming create_portfolio_draft for new portfolios and get_portfolio_analytics with candidateTicker for single-ticker checks. An agent can route correctly from the description alone.

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?

Gives explicit trigger phrasings ('what should I buy next', 'recommend a position'), names the alternative tools and the conditions that select them, and prescribes a fallback (confirm portfolio and idea count in ONE step, use list_portfolios when the user has multiple). Both when-to-use and when-to-use-something-else are covered.

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