{"name":"app.manawa/manawa-terminal","slug":"manawa-terminal","title":"Manawa Terminal","description":"Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.","url":"https://mcp.market/server/manawa-terminal","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T05:35:54.653Z","last_ok_at":"2026-09-24T05:35:54.653Z","latency_ms":196},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.manawa.app","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://mcp.manawa.app/mcp"}],"packages":[],"tools":[{"name":"add_transaction","description":"Add a buy, sell, deposit, or withdrawal transaction to a portfolio.\n\n    Args:\n        portfolio_id: The portfolio UUID\n        symbol: Stock symbol (e.g. \"AAPL\"). For deposit/withdrawal use \"$CASH\"\n            (aliases \"CASH\" / blank are normalized to \"$CASH\").\n        side: \"buy\", \"sell\", \"deposit\", or \"withdrawal\"\n        qty: Number of shares (or cash amount for deposit/withdrawal)\n        price: Price per share\n        date: Transaction date (YYYY-MM-DD)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"portfolio_id":{"title":"Portfolio Id","type":"string"},"symbol":{"title":"Symbol","type":"string"},"side":{"title":"Side","type":"string"},"qty":{"title":"Qty","type":"number"},"price":{"title":"Price","type":"number"},"date":{"title":"Date","type":"string"}},"required":["portfolio_id","symbol","side","qty","price","date"],"title":"add_transactionArguments"}},{"name":"create_alert","description":"Create a price or event alert for a symbol.\n\n    Args:\n        symbol: Stock symbol (e.g. \"AAPL\")\n        alert_type: \"target_price\", \"movement_pct\", or \"event\"\n        direction: Required for price alerts — \"above\", \"below\", or \"either\"\n        threshold: Required for price alerts — price level or percentage move\n        notes: Optional description\n        event_types: Required when alert_type is \"event\". One or more of:\n            \"earnings_transcript\", \"insider_trade\", \"news_stock\", \"press_release\",\n            \"filing_8k\", \"filing_13f\", \"politician_senate\", \"politician_house\",\n            \"merger_acquisition\"\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"title":"Symbol","type":"string"},"alert_type":{"title":"Alert Type","type":"string"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Direction"},"threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Threshold"},"notes":{"default":"","title":"Notes","type":"string"},"event_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Event Types"}},"required":["symbol","alert_type"],"title":"create_alertArguments"}},{"name":"create_library_folder","description":"Create a library folder, optionally nested under a parent.\n\n    Args:\n        name: Folder name\n        parent_id: Parent folder UUID (optional — omit for a root folder)\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"title":"Name","type":"string"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Parent Id"}},"required":["name"],"title":"create_library_folderArguments"}},{"name":"create_library_item","description":"Create a markdown or HTML document in the research library.\n\n    Args:\n        title: Document title\n        content: Markdown body, or raw HTML when content_type is text/html\n        folder_id: Folder UUID (optional — omit for library root)\n        content_type: text/markdown (default) or text/html. HTML is stored as source.\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"title":"Title","type":"string"},"content":{"title":"Content","type":"string"},"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Folder Id"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Content Type"}},"required":["title","content"],"title":"create_library_itemArguments"}},{"name":"create_portfolio","description":"Create a portfolio with a name and base currency.\n\n    Args:\n        name: Portfolio name\n        currency: Base currency (default USD)\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"title":"Name","type":"string"},"currency":{"default":"USD","title":"Currency","type":"string"}},"required":["name"],"title":"create_portfolioArguments"}},{"name":"create_watchlist","description":"Create a watchlist with the given name and ticker symbols.\n\n    Args:\n        name: Watchlist name\n        symbols: List of stock symbols (e.g. [\"AAPL\", \"MSFT\"])\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"title":"Name","type":"string"},"symbols":{"items":{"type":"string"},"title":"Symbols","type":"array"}},"required":["name","symbols"],"title":"create_watchlistArguments"}},{"name":"delete_alert","description":"Delete an alert by ID.\n\n    Args:\n        alert_id: The alert UUID\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"alert_id":{"title":"Alert Id","type":"string"}},"required":["alert_id"],"title":"delete_alertArguments"}},{"name":"delete_library_folder","description":"Delete a library folder and everything inside it.\n\n    Args:\n        folder_id: The folder UUID\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"folder_id":{"title":"Folder Id","type":"string"}},"required":["folder_id"],"title":"delete_library_folderArguments"}},{"name":"delete_library_item","description":"Delete a library document and all of its stored versions.\n\n    Args:\n        item_id: The item UUID\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"item_id":{"title":"Item Id","type":"string"}},"required":["item_id"],"title":"delete_library_itemArguments"}},{"name":"finance_search","description":"Search financial data and return an answer with an inline widget.\n\n    Covers stocks, macro, forex, crypto, commodities, earnings, technicals,\n    and related market questions. Pass the user's question in `query` without\n    rephrasing.\n\n    To screen a named watchlist or portfolio, call list_watchlists or\n    list_portfolios first, then pass the symbols here with filter criteria in\n    `query`.\n\n    Exclusive modes when a Deep Dive exists:\n      focus=ai + section=… → narrative section\n      focus=raw + source=… → thin data slice\n      focus=catalog → list available Deep Dives\n\n    Args:\n        query: The user's financial question\n        symbols: Optional ticker universe to screen (e.g. from list_watchlists)\n        section: Optional Deep Dive section (competition, valuation, thesis,\n            forecast, analyst_consensus, people, financials, earnings,\n            technicals, overview, moves, markets, flow, calendar, catalysts, odds)\n            or raw tapes: options, buzz.\n            Buzz, social media, reddit, twitter, sentiment, or what people are\n            talking about MUST be section=buzz. Do not send those to news or\n            catalysts. Consumer sentiment and analyst sentiment are not Buzz.\n        focus: Optional exclusive mode: ai | raw | auto | catalog\n        source: Optional thin raw slice when focus=raw (comparison_peers,\n            price_targets, consensus, quote, key_financials, …)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"title":"Query","type":"string"},"symbols":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Symbols"},"section":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Section"},"focus":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Focus"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Source"}},"required":["query"],"title":"finance_searchArguments"}},{"name":"get_journal_entry","description":"Get a full generated journal entry by ID from list_journal.\n\n    Draft ids from submit_journal_draft are not readable until end-of-day\n    generation; use list_journal after the daily run for valid entry ids\n    (integer or legacy UUID).\n\n    Args:\n        entry_id: Journal entry id from list_journal (integer or UUID)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"entry_id":{"title":"Entry Id","type":"string"}},"required":["entry_id"],"title":"get_journal_entryArguments"}},{"name":"get_library_item","description":"Get a library document's metadata and content.\n\n    Content is markdown, raw HTML (content_type text/html), or a signed URL for PDFs.\n\n    Args:\n        item_id: The item UUID\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"item_id":{"title":"Item Id","type":"string"}},"required":["item_id"],"title":"get_library_itemArguments"}},{"name":"get_notifications","description":"Get recent triggered alert notifications.\n\n    Args:\n        offset: Skip this many notifications (default 0)\n        limit: Page size (default 50, max 100). Upstream returns at most 50 unread.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"get_notificationsArguments"}},{"name":"get_portfolio_statistics","description":"Get portfolio performance statistics (returns, allocation, risk).\n\n    Args:\n        portfolio_id: The portfolio UUID\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"portfolio_id":{"title":"Portfolio Id","type":"string"}},"required":["portfolio_id"],"title":"get_portfolio_statisticsArguments"}},{"name":"get_positions","description":"Get current holdings with quantity, cost basis, market value, and unrealized P&L.\n\n    Args:\n        portfolio_id: The portfolio UUID\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"portfolio_id":{"title":"Portfolio Id","type":"string"}},"required":["portfolio_id"],"title":"get_positionsArguments"}},{"name":"list_alerts","description":"List active price and event alerts for the authenticated user.\n\n    Args:\n        offset: Skip this many alerts (default 0)\n        limit: Page size (default 50, max 100)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"list_alertsArguments"}},{"name":"list_journal","description":"List generated daily research journal entries (most recent first).\n\n    Entries appear only after the automatic end-of-day journal generation run.\n    Drafts from submit_journal_draft are not listed until that run completes.\n\n    Args:\n        offset: Skip this many entries (default 0)\n        limit: Page size (default 50, max 100). Upstream returns at most 90 days.\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"list_journalArguments"}},{"name":"list_library_folders","description":"List folders in the authenticated user's research library.\n\n    Args:\n        offset: Skip this many folders (default 0)\n        limit: Page size (default 50, max 100)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"list_library_foldersArguments"}},{"name":"list_library_item_versions","description":"List version history for a library document (newest first).\n\n    Args:\n        item_id: The item UUID\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"item_id":{"title":"Item Id","type":"string"}},"required":["item_id"],"title":"list_library_item_versionsArguments"}},{"name":"list_library_items","description":"List documents in a library folder, or at the root if no folder is given.\n\n    Args:\n        folder_id: Folder UUID to list (optional — omit for root-level items)\n        offset: Skip this many items (default 0)\n        limit: Page size (default 50, max 100)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Folder Id"},"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"list_library_itemsArguments"}},{"name":"list_portfolios","description":"List the authenticated user's portfolios.\n\n    Args:\n        offset: Skip this many portfolios (default 0)\n        limit: Page size (default 50, max 100)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"list_portfoliosArguments"}},{"name":"list_watchlists","description":"List the authenticated user's watchlists and their symbols.\n\n    Args:\n        offset: Skip this many lists (default 0)\n        limit: Page size (default 50, max 100)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"offset":{"default":0,"title":"Offset","type":"integer"},"limit":{"default":50,"title":"Limit","type":"integer"}},"title":"list_watchlistsArguments"}},{"name":"marketing_graphics","description":"Admin only. Live formats for one inbox item, or the catalog.\n\n    For a bot, pass content_id from marketing_inbox. Empty options means skip\n    the item. Already-rendered images are included so you can reuse a cache hit.\n\n    Args:\n        content_id: gc:{id} or rd:{uuid} — live formats for that item\n        section: Catalog filter (no content_id)\n        language: Catalog filter\n        format: Catalog filter\n        status: live or draft (catalog only)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"content_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Content Id"},"section":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Section"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Language"},"format":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Format"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Status"}},"title":"marketing_graphicsArguments"}},{"name":"marketing_inbox","description":"Admin only. Latest teasers plus already-generated images.\n\n    Use ticker for all current items on a symbol, type for one content_type\n    across symbols, or since for the worker poll. Then call\n    marketing_graphics(content_id) for live formats. Reuse items[].images[]\n    when the option you want is already rendered.\n\n    Args:\n        since: ISO timestamptz — inbox newer than this\n        ticker: Current items for this symbol\n        type: allowlisted content_type or research_drop\n        limit: 1–200 (default 50)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Since"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Ticker"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Type"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Limit"}},"title":"marketing_inboxArguments"}},{"name":"marketing_render","description":"Admin only. Render one live format and wait until image.url exists.\n\n    Blocks until GCS has the PNG (or a cache hit). Do not poll. Draft\n    formats return option_not_live.\n\n    Args:\n        content_id: gc:{id} or rd:{uuid}\n        option_id: live option from marketing_graphics\n        force: Bypass render cache\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"content_id":{"title":"Content Id","type":"string"},"option_id":{"title":"Option Id","type":"string"},"force":{"default":false,"title":"Force","type":"boolean"}},"required":["content_id","option_id"],"title":"marketing_renderArguments"}},{"name":"move_library_folder","description":"Move a library folder under a different parent (or to root).\n\n    Args:\n        folder_id: The folder UUID to move\n        parent_id: New parent folder UUID (omit / null for library root)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"folder_id":{"title":"Folder Id","type":"string"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Parent Id"}},"required":["folder_id"],"title":"move_library_folderArguments"}},{"name":"move_library_item","description":"Move a library document into a different folder (or to root).\n\n    Args:\n        item_id: The item UUID to move\n        folder_id: Destination folder UUID (omit / null for library root)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"item_id":{"title":"Item Id","type":"string"},"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Folder Id"}},"required":["item_id"],"title":"move_library_itemArguments"}},{"name":"rename_library_folder","description":"Rename a library folder.\n\n    Args:\n        folder_id: The folder UUID\n        name: New folder name\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"folder_id":{"title":"Folder Id","type":"string"},"name":{"title":"Name","type":"string"}},"required":["folder_id","name"],"title":"rename_library_folderArguments"}},{"name":"report_bug","description":"Log a bug in the same inbox as the terminal bug button (5 per user per day).\n\n    Use only when the user asks, or when you have confirmed a real data/UI\n    error. Do not file speculative bugs. Pass ticker/section so admins get a\n    terminal URL; page_url is optional if it is already a terminal.manawa.app link.\n\n    Args:\n        description: What is wrong (10–2000 characters)\n        ticker: Optional stock symbol the bug is about\n        section: Optional tab (overview, financials, thesis, valuation, …)\n        page_url: Optional full terminal URL if already known\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"description":{"title":"Description","type":"string"},"ticker":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Ticker"},"section":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Section"},"page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Page Url"}},"required":["description"],"title":"report_bugArguments"}},{"name":"run_deepdive","description":"Queue a full DeepDive suite for a stock using a monthly custom-run grant.\n\n    Prepaid search credits cannot pay for this. Free plans have 0 runs;\n    Basic has 10/month; Pro has 50/month. Re-running a ticker already\n    unlocked this month does not consume another grant. The call returns\n    as soon as the job is queued — do not poll.\n\n    Args:\n        ticker: Stock symbol (e.g. \"AAPL\")\n        force: Re-queue every chapter even when a current report exists.\n            Use when on-file content is the wrong instrument (e.g. ZS\n            Thesis written as soybeans).\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"ticker":{"title":"Ticker","type":"string"},"force":{"default":false,"title":"Force","type":"boolean"}},"required":["ticker"],"title":"run_deepdiveArguments"}},{"name":"search_library","description":"Full-text search across the authenticated user's library documents.\n\n    Args:\n        query: Search terms\n        limit: Max results (default 20, capped at 50)\n    ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"title":"Query","type":"string"},"limit":{"default":20,"title":"Limit","type":"integer"}},"required":["query"],"title":"search_libraryArguments"}},{"name":"submit_journal_draft","description":"Submit a journal draft for a day. Same-day resubmissions are retained as separate drafts.\n\n    The draft is accepted immediately but the readable daily journal entry is\n    generated automatically at end of day; it then appears in list_journal.\n    The returned draft id is not a list_journal / get_journal_entry id until then.\n\n    Args:\n        entry_date: Day the draft is for (YYYY-MM-DD)\n        content: Draft text\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"entry_date":{"title":"Entry Date","type":"string"},"content":{"title":"Content","type":"string"}},"required":["entry_date","content"],"title":"submit_journal_draftArguments"}},{"name":"update_library_item","description":"Update a library document's title and/or content (content edits create a new version).\n\n    Content is markdown, or raw HTML when the document is already text/html.\n    The document type does not change.\n\n    Args:\n        item_id: The item UUID\n        title: New title (optional)\n        content: New markdown or HTML source (optional)\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"item_id":{"title":"Item Id","type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Title"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Content"}},"required":["item_id"],"title":"update_library_itemArguments"}},{"name":"update_watchlist","description":"Update a watchlist's name and/or symbols.\n\n    Args:\n        watchlist_id: The watchlist UUID\n        name: New name (optional)\n        symbols: Updated list of symbols (optional)\n    ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"watchlist_id":{"title":"Watchlist Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"symbols":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Symbols"}},"required":["watchlist_id"],"title":"update_watchlistArguments"}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-24T05:05:16.348Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:05:16.266Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 468ms"]},"poisoning":{"score":15,"max":15,"notes":["34 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 12 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.manawa.app/mcp","reachable":true,"authRequired":false,"latencyMs":468,"serverInfo":{"name":"Finance Search","version":"1.30.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://www.manawa.app/logo.png","source":"site","width":40,"height":40},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}