Manawa Terminal
Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
- 1.0.0
- Version
- remote
- Transport
- 34
- Tools
Security review
Review passedReviewed Jan 1, 2000.
- tools: 34 tools scanned
- metadata: scanned
No findings.
Tools (34)
finance_search
Search financial data and return an answer with an inline widget. Covers stocks, macro, forex, crypto, commodities, earnings, technicals, and related market questions. Pass the user's question in `query` without rephrasing. To screen a named watchlist or portfolio, call list_watchlists or list_portfolios first, then pass the symbols here with filter criteria in `query`. Exclusive modes when a Deep Dive exists: focus=ai + section=… → narrative section focus=raw + source=… → thin data slice focus=catalog → list available Deep Dives Args: query: The user's financial question symbols: Optional ticker universe to screen (e.g. from list_watchlists) section: Optional Deep Dive section (competition, valuation, thesis, forecast, analyst_consensus, people, financials, earnings, technicals, overview, moves, markets, flow, calendar, catalysts, odds) or raw tapes: options, buzz, acceler
list_watchlists
List the authenticated user's watchlists and their symbols. Args: offset: Skip this many lists (default 0) limit: Page size (default 50, max 100)
create_watchlist
Create a watchlist with the given name and ticker symbols. Args: name: Watchlist name symbols: List of stock symbols (e.g. ["AAPL", "MSFT"])
update_watchlist
Update a watchlist's name and/or symbols. Args: watchlist_id: The watchlist UUID name: New name (optional) symbols: Updated list of symbols (optional)
list_portfolios
List the authenticated user's portfolios. Args: offset: Skip this many portfolios (default 0) limit: Page size (default 50, max 100)
create_portfolio
Create a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD)
add_transaction
Add a buy, sell, deposit, or withdrawal transaction to a portfolio. Args: portfolio_id: The portfolio UUID symbol: Stock symbol (e.g. "AAPL"). For deposit/withdrawal use "$CASH" (aliases "CASH" / blank are normalized to "$CASH"). side: "buy", "sell", "deposit", or "withdrawal" qty: Number of shares (or cash amount for deposit/withdrawal) price: Price per share date: Transaction date (YYYY-MM-DD)
get_positions
Get current holdings with quantity, cost basis, market value, and unrealized P&L. Args: portfolio_id: The portfolio UUID
get_portfolio_statistics
Get portfolio performance statistics (returns, allocation, risk). Args: portfolio_id: The portfolio UUID
list_alerts
List active price and event alerts for the authenticated user. Args: offset: Skip this many alerts (default 0) limit: Page size (default 50, max 100)
create_alert
Create a price or event alert for a symbol. Args: symbol: Stock symbol (e.g. "AAPL") alert_type: "target_price", "movement_pct", or "event" direction: Required for price alerts — "above", "below", or "either" threshold: Required for price alerts — price level or percentage move notes: Optional description event_types: Required when alert_type is "event". One or more of: "earnings_transcript", "insider_trade", "news_stock", "press_release", "filing_8k", "filing_13f", "politician_senate", "politician_house", "merger_acquisition"
get_notifications
Get recent triggered alert notifications. Args: offset: Skip this many notifications (default 0) limit: Page size (default 50, max 100). Upstream returns at most 50 unread.
delete_alert
Delete an alert by ID. Args: alert_id: The alert UUID
list_library_folders
List folders in the authenticated user's research library. Args: offset: Skip this many folders (default 0) limit: Page size (default 50, max 100)
create_library_folder
Create a library folder, optionally nested under a parent. Args: name: Folder name parent_id: Parent folder UUID (optional — omit for a root folder)
rename_library_folder
Rename a library folder. Args: folder_id: The folder UUID name: New folder name
move_library_folder
Move a library folder under a different parent (or to root). Args: folder_id: The folder UUID to move parent_id: New parent folder UUID (omit / null for library root)
delete_library_folder
Delete a library folder and everything inside it. Args: folder_id: The folder UUID
list_library_items
List documents in a library folder, or at the root if no folder is given. Args: folder_id: Folder UUID to list (optional — omit for root-level items) offset: Skip this many items (default 0) limit: Page size (default 50, max 100)
get_library_item
Get a library document's metadata and content. Content is markdown, raw HTML (content_type text/html), or a signed URL for PDFs. Args: item_id: The item UUID
create_library_item
Create a markdown or HTML document in the research library. Args: title: Document title content: Markdown body, or raw HTML when content_type is text/html folder_id: Folder UUID (optional — omit for library root) content_type: text/markdown (default) or text/html. HTML is stored as source.
update_library_item
Update a library document's title and/or content (content edits create a new version). Content is markdown, or raw HTML when the document is already text/html. The document type does not change. Args: item_id: The item UUID title: New title (optional) content: New markdown or HTML source (optional)
move_library_item
Move a library document into a different folder (or to root). Args: item_id: The item UUID to move folder_id: Destination folder UUID (omit / null for library root)
delete_library_item
Delete a library document and all of its stored versions. Args: item_id: The item UUID
list_library_item_versions
List version history for a library document (newest first). Args: item_id: The item UUID
search_library
Full-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50)
list_journal
List generated daily research journal entries (most recent first). Entries appear only after the automatic end-of-day journal generation run. Drafts from submit_journal_draft are not listed until that run completes. Args: offset: Skip this many entries (default 0) limit: Page size (default 50, max 100). Upstream returns at most 90 days.
get_journal_entry
Get a full generated journal entry by ID from list_journal. Draft ids from submit_journal_draft are not readable until end-of-day generation; use list_journal after the daily run for valid entry ids (integer or legacy UUID). Args: entry_id: Journal entry id from list_journal (integer or UUID)
submit_journal_draft
Submit a journal draft for a day. Same-day resubmissions are retained as separate drafts. The draft is accepted immediately but the readable daily journal entry is generated automatically at end of day; it then appears in list_journal. The returned draft id is not a list_journal / get_journal_entry id until then. Args: entry_date: Day the draft is for (YYYY-MM-DD) content: Draft text
run_deepdive
Queue a full DeepDive suite for a stock using a monthly custom-run grant. Prepaid search credits cannot pay for this. Free plans have 0 runs; Basic has 10/month; Pro has 50/month. Re-running a ticker already unlocked this month does not consume another grant. The call returns as soon as the job is queued — do not poll. Args: ticker: Stock symbol (e.g. "AAPL") force: Re-queue every chapter even when a current report exists. Use when on-file content is the wrong instrument (e.g. ZS Thesis written as soybeans).
report_bug
Log a bug in the same inbox as the terminal bug button (5 per user per day). Use only when the user asks, or when you have confirmed a real data/UI error. Do not file speculative bugs. Pass ticker/section so admins get a terminal URL; page_url is optional if it is already a terminal.manawa.app link. Args: description: What is wrong (10–2000 characters) ticker: Optional stock symbol the bug is about section: Optional tab (overview, financials, thesis, valuation, …) page_url: Optional full terminal URL if already known
marketing_inbox
Admin only. Latest teasers plus already-generated images. Use ticker for all current items on a symbol, type for one content_type across symbols, or since for the worker poll. Then call marketing_graphics(content_id) for live formats. Reuse items[].images[] when the option you want is already rendered. Args: since: ISO timestamptz — inbox newer than this ticker: Current items for this symbol type: allowlisted content_type or research_drop limit: 1–200 (default 50)
marketing_graphics
Admin only. Live formats for one inbox item, or the catalog. For a bot, pass content_id from marketing_inbox. Empty options means skip the item. Already-rendered images are included so you can reuse a cache hit. Args: content_id: gc:{id} or rd:{uuid} — live formats for that item section: Catalog filter (no content_id) language: Catalog filter format: Catalog filter status: live or draft (catalog only)
marketing_render
Admin only. Render one live format and wait until image.url exists. Blocks until GCS has the PNG (or a cache hit). Do not poll. Draft formats return option_not_live. Args: content_id: gc:{id} or rd:{uuid} option_id: live option from marketing_graphics force: Bypass render cache