Read-only MCP server exposing the Glasshouse Fund portfolio management system, providing access to holdings, performance history, trades, decisions, debates, and semantic memory search.
Server exposes 7 read-only tools with clear naming (verb_noun pattern: get_*, list_, search_) and reasonable descriptions (avg ~120 chars). All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not documented in the source, LLMs cannot predict return structure. Parameter descriptions lack format constraints (e.g., ISO date format for 'since'/'until' is mentioned in description but not formalized). No error handling guidance visible. Tools are well-composed (single responsibility) and idempotent (all READ_ONLY). Naming is consistent and action-oriented.
The bull/bear/risk analyst debate transcript and the PM's bear-case response for a run. Look up by run_id, by ISO date, or omit both for the latest.
Full reasoning for one decision — outlook, market/risk assessment, the PM's bear-case response, executed/rejected/rebalance trades, system risk events, and grounding. Look up by run_id, by ISO date, or omit both for the latest.
Current portfolio holdings: cash, each position's shares/cost/price, and per-position unrealized P&L and return.
Recent daily runs (newest first): portfolio value, cash %, trades executed, status, and LLM cost per run.
Compact decision-journal summaries (outlook, summary, executed trades), newest first. Filter by symbol and/or ISO date range.
Executed trades, newest first. Filter by symbol (e.g. "NVDA"), action ("BUY"/"SELL"), and/or an ISO date range (since/until, inclusive).
Output schemas not documented. LLMs cannot predict return structure (fields, types, nesting). Tools return complex objects (holdings with per-position P&L, debate transcripts, memory matches with metadata) but no schema is visible in source.
Date parameters (since, until) lack format constraints. Descriptions mention 'ISO date' but no regex pattern or JSON Schema format is enforced. LLMs may pass invalid formats (e.g., '2024/01/15' instead of '2024-01-15').
No error handling guidance. If a lookup fails (e.g., run_id not found in get_decision), no recovery hint is provided. LLMs cannot self-correct or know whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Semantic search over the fund's long-term memory (prior theses, risk lessons, trades, SEC/earnings context). Returns the top-k matches with source metadata.
Pagination not fully specified. list_trades and list_decisions accept 'limit' but no 'offset' or 'cursor' parameter visible. No 'total_count' or 'has_more' field documented in output. Large result sets may exceed context window.
Parameter 'action' in list_trades accepts 'BUY'/'SELL' but not formalized as enum. Description provides examples but LLMs may hallucinate other values (e.g., 'HOLD', 'SELL_SHORT').