Manawa Terminal
Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.manawa.app/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.manawa.app/mcp{
"mcpServers": {
"manawa-terminal": {
"url": "https://mcp.manawa.app/mcp"
}
}
}claude mcp add --transport http manawa-terminal https://mcp.manawa.app/mcp{
"servers": {
"manawa-terminal": {
"type": "http",
"url": "https://mcp.manawa.app/mcp"
}
}
}39 tools, verified live
finance_searchread-onlySearch 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`.
list_watchlistsread-onlyList the authenticated user's watchlists and their symbols. Args: offset: Skip this many lists (default 0) limit: Page size (default 50, max 100)
create_watchlistCreate a watchlist with the given name and ticker symbols. Args: name: Watchlist name symbols: List of stock symbols (e.g. ["AAPL", "MSFT"])
update_watchlistUpdate a watchlist's name and/or symbols. Args: watchlist_id: The watchlist UUID name: New name (optional) symbols: Updated list of symbols (optional)
list_screenersread-onlyList the authenticated user's saved screeners (filter queries + schedule). Args: offset: Skip this many screeners (default 0) limit: Page size (default 50, max 100)
create_screenerSave a screener filter query for scheduled enter/exit (joiner/leaver) notifies. Same rows as Terminal Save on /screener. Pass last_symbols (current matches) or call run_screener after create to seed the baseline; later runs notify names that enter or leave when Settings Screener in & out is on. Args: name: Screener name (blank â derived from filters) query: Filt
update_screenerUpdate a saved screener's name, query, schedule, or baseline symbols. Args: screener_id: The screener UUID from list_screeners name: New name (optional) query: Updated filter blob (optional) schedule: "off", "daily", or "weekly" (optional; weekly requires Pro) notify_on_change: Toggle enter/exit notifies (optional) last_symbols: Refresh enter/ex
delete_screenercan modifyDelete a saved screener by ID. Args: screener_id: The screener UUID from list_screeners
run_screenerRe-run a saved screener; persist last_symbols; return entered/exited. First seed does not notify. Later runs notify joiners and leavers when Settings Screener in & out is on. Same path as Terminal Run now. Args: screener_id: The screener UUID from list_screeners
list_portfoliosread-onlyList the authenticated user's portfolios. Args: offset: Skip this many portfolios (default 0) limit: Page size (default 50, max 100)
create_portfolioCreate a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD)
add_transactionAdd a buy, sell, deposit, withdrawal, dividend, short, or cover to a portfolio. A short names the stock. qty is the shares sold short. price is the sale price per share. A cover names the stock. qty is the shares bought back. price is the price per share. Neither uses $CASH. A short while long, a cover larger than the short, a sell larger than the long, and a buy while short c
get_positionsread-onlyGet current holdings with quantity, cost basis, market value, and unrealized P&L. A short has negative shares, a positive avg_cost, a negative total_cost_book (the open credit), and a negative market value. Unrealized profit is positive. Cash includes short proceeds and is reduced when the short owes a dividend. Open cost of a long is already net of dividends still held. Realized
get_portfolio_statisticsread-onlyGet portfolio performance statistics (returns, allocation, risk). gross_exposure and net_exposure are in book currency. A weight may be negative. dividend_income is cash by stock and can be negative when a short owes the dividend. total_gain is unrealized_pnl + realized_pnl. Do not add dividend_income on top of total_gain. Args: portfolio_id: The portfolio UUID
list_alertsread-onlyList price, event, and clock alerts for the authenticated user. Args: offset: Skip this many alerts (default 0) limit: Page size (default 50, max 100)
create_alertCreate a price alert, an event alert, or a clock. Calling this stores the alert. A clock may omit the ticker. Args: symbol: Stock symbol (e.g. "AAPL"). Required for price and event alerts. Optional for a clock. alert_type: "target_price", "movement_pct", "event", or "schedule" direction: Required for price alerts â "above", "below", or "either" threshold
get_notificationsread-onlyGet alert notifications. Unread only, unless history is set. Args: offset: Skip this many rows (default 0) limit: Page size (default 50, max 100). Unread upstream cap is 50. history: When true, return fired alerts including ones already read, newest first.
delete_alertcan modifyDelete an alert by ID. Args: alert_id: The alert UUID
list_library_foldersread-onlyList 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_folderCreate 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_folderRename a library folder. Args: folder_id: The folder UUID name: New folder name
move_library_folderMove 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_foldercan modifyDelete a library folder and everything inside it. Args: folder_id: The folder UUID
list_library_itemsread-onlyList 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_itemread-onlyGet 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_itemCreate 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_itemUpdate 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_itemMove 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_itemcan modifyDelete a library document and all of its stored versions. Args: item_id: The item UUID
list_library_item_versionsread-onlyList version history for a library document (newest first). Args: item_id: The item UUID
search_libraryread-onlyFull-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50)
list_journalread-onlyList 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_entryread-onlyGet 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_draftSubmit 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)
run_deepdiveQueue 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")
report_bugLog 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: O
marketing_inboxread-onlyAdmin 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 tic
marketing_graphicsread-onlyAdmin 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:
marketing_renderAdmin 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
Alternatives in Finance & Payments
Compare →
Banco Central do Brasil (BCB) — SGS Time Series MCP ServerB
Banco Central do Brasil (BCB): SGS series, Focus expectations, PTAX, stats + provenance. 17 tools.
ATAgent402.Tools: pay-per-call web toolsB
Agentic Finance: 500+ agent tools, multi-chain USDC over x402 or MPP, or free via proof-of-work
SMSecedgar MCP ServerB
Query SEC EDGAR filings, XBRL financials, and company data via MCP. STDIO or Streamable HTTP.
STStock Trends Market IntelligenceB
Equity trend, relative-strength, expected-return, market-context, and research resources for agents.
SmartAccounts MCP by usefulapiB
Read SmartAccounts clients, vendors, invoices, payments, ledger, accounts; create and book records.
Oblio MCP by usefulapiB
Read Oblio clients, products and documents; create proformas, issue, collect and cancel invoices.