Skip to main content
Glama

NexusTrade Financial MCP

fetch_portfolios

List or search your portfolios with lightweight metadata (strategy id + name). Matches portfolio name, strategy names, and tickers — same workspace search as the dashboard / GET /api/chat-portfolio. include_chat_portfolios returns workspace DRAFTS only (excludes deployedMirror rows). Recover a past chat draft: include_paper=false, include_live=false, include_chat_portfolios=true, search="Delta 0.07" (then get_portfolio for full strategy JSON). Returns an object: { portfolios, page, limit, total, totalPages, scopes }. Deployed and draft rows page as one list (all deployed, then all drafts), so every row is reachable by walking pages. When search is set, include_positions defaults to false. Use analyze_portfolios only when you need LLM-written analysis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
limitNoMax portfolios to return (default 20, max 50)
searchNoFree-text search (max 100 chars) over portfolio name, strategy names, and tickers, ranked by relevance. Matches stemmed whole words (Postgres full-text) and case-insensitive substrings of 3+ characters (so prefixes like "neckb" find "Neckbeard"). Omit for list/paginate mode. Matches the dashboard workspace search — not condition-field values.
include_liveNoInclude live trading portfolios (default true)
include_paperNoInclude paper portfolios (default true)
portfolio_idsNoSpecific portfolio IDs to fetch (omit for all)
include_inactiveNoInclude inactive portfolios (default true)
include_positionsNoInclude positions + spread-grouped holdings (default true when not searching; default false when search is set). cash and buyingPower are always returned for deployed portfolios regardless of this flag.
include_chat_portfoliosNoInclude workspace draft chat portfolios (default false). Excludes deployedMirror. Set true with include_paper=false and include_live=false for draft-only search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral burden, and it delivers: it discloses pagination ordering (deployed first, then drafts), draft-only scoping and deployedMirror exclusion, search matching semantics, and default changes such as include_positions defaulting to false when searching. It also reveals the return object shape. This is exceptionally transparent for a tool with no 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 information-dense and front-loaded with the core purpose, but it is fairly long and includes some redundancy, such as repeating search behavior already in the schema. Every sentence carries useful information, yet a tighter structure would improve skimmability without losing key details.

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 9 parameters, no annotations, and no output schema, the description is remarkably complete: it covers return fields, pagination behavior, search nuances, draft handling, and parameter defaults. An agent has enough context to decide when to call it and how to invoke it correctly. No critical behavior is left unexplained.

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% and the schema already documents parameters richly. The description still adds value beyond the schema by explaining that include_chat_portfolios returns only workspace DRAFTS and excludes deployedMirror, and by offering a concrete draft-recovery example. This goes beyond mere repetition, but the schema already does most of the heavy lifting.

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: 'List or search your portfolios with lightweight metadata (strategy id + name).' It clearly differentiates from siblings by noting it returns lightweight metadata and explicitly points to analyze_portfolios and get_portfolio for other needs. This is unambiguous and lets an agent know exactly what the tool is for.

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 explicit usage context: when to use search vs. list mode, how to recover past chat drafts with specific flag combinations, and when to prefer analyze_portfolios or get_portfolio. It also clarifies that include_chat_portfolios is for draft-only searches. This is strong, actionable guidance for selecting the right tool.

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.