Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://mcp.manawa.app/mcp31 tools · 212msfinance_searchSearch 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
li…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 li…
| Parameter | Type | Description |
|---|---|---|
| query* | string | — |
| symbols | — | — |
| section | — | — |
| focus | — | — |
| source | — | — |
list_watchlistsList the authenticated user's watchlists and their symbols.
Args:
offset: Skip this many lists (default 0)
limit: Page size (default 50, max 100)List the authenticated user's watchlists and their symbols. Args: offset: Skip this many lists (default 0) limit: Page size (default 50, max 100)
| Parameter | Type | Description |
|---|---|---|
| offset | integer | — |
| limit | integer | — |
create_watchlistCreate a watchlist with the given name and ticker symbols.
Args:
name: Watchlist name
symbols: List of stock symbols (e.g. ["AAPL", "MSFT"])Create a watchlist with the given name and ticker symbols. Args: name: Watchlist name symbols: List of stock symbols (e.g. ["AAPL", "MSFT"])
| Parameter | Type | Description |
|---|---|---|
| name* | string | — |
| symbols* | array | — |
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)Update a watchlist's name and/or symbols. Args: watchlist_id: The watchlist UUID name: New name (optional) symbols: Updated list of symbols (optional)
| Parameter | Type | Description |
|---|---|---|
| watchlist_id* | string | — |
| name | — | — |
| symbols | — | — |
list_portfoliosList the authenticated user's portfolios.
Args:
offset: Skip this many portfolios (default 0)
limit: Page size (default 50, max 100)List the authenticated user's portfolios. Args: offset: Skip this many portfolios (default 0) limit: Page size (default 50, max 100)
| Parameter | Type | Description |
|---|---|---|
| offset | integer | — |
| limit | integer | — |
create_portfolioCreate a portfolio with a name and base currency.
Args:
name: Portfolio name
currency: Base currency (default USD)Create a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD)
| Parameter | Type | Description |
|---|---|---|
| name* | string | — |
| currency | string | — |
add_transactionAdd 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…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…
| Parameter | Type | Description |
|---|---|---|
| portfolio_id* | string | — |
| symbol* | string | — |
| side* | string | — |
| qty* | number | — |
| price* | number | — |
| date* | string | — |
get_positionsGet current holdings with quantity, cost basis, market value, and unrealized P&L.
Args:
portfolio_id: The portfolio UUIDGet current holdings with quantity, cost basis, market value, and unrealized P&L. Args: portfolio_id: The portfolio UUID
| Parameter | Type | Description |
|---|---|---|
| portfolio_id* | string | — |
get_portfolio_statisticsGet portfolio performance statistics (returns, allocation, risk).
Args:
portfolio_id: The portfolio UUIDGet portfolio performance statistics (returns, allocation, risk). Args: portfolio_id: The portfolio UUID
| Parameter | Type | Description |
|---|---|---|
| portfolio_id* | string | — |
list_alertsList active price and event alerts for the authenticated user.
Args:
offset: Skip this many alerts (default 0)
limit: Page size (default 50, max 100)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)
| Parameter | Type | Description |
|---|---|---|
| offset | integer | — |
| limit | integer | — |
create_alertCreate 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: Option…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: Option…
| Parameter | Type | Description |
|---|---|---|
| symbol* | string | — |
| alert_type* | string | — |
| direction | — | — |
| threshold | — | — |
| notes | string | — |
| event_types | — | — |
get_notificationsGet 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.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.
| Parameter | Type | Description |
|---|---|---|
| offset | integer | — |
| limit | integer | — |
delete_alertprivilegedDelete an alert by ID.
Args:
alert_id: The alert UUIDDelete an alert by ID. Args: alert_id: The alert UUID
| Parameter | Type | Description |
|---|---|---|
| alert_id* | string | — |
list_library_foldersList folders in the authenticated user's research library.
Args:
offset: Skip this many folders (default 0)
limit: Page size (default 50, max 100)List folders in the authenticated user's research library. Args: offset: Skip this many folders (default 0) limit: Page size (default 50, max 100)
| Parameter | Type | Description |
|---|---|---|
| offset | integer | — |
| limit | integer | — |
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)Create a library folder, optionally nested under a parent. Args: name: Folder name parent_id: Parent folder UUID (optional — omit for a root folder)
| Parameter | Type | Description |
|---|---|---|
| name* | string | — |
| parent_id | — | — |
rename_library_folderprivilegedRename a library folder.
Args:
folder_id: The folder UUID
name: New folder nameRename a library folder. Args: folder_id: The folder UUID name: New folder name
| Parameter | Type | Description |
|---|---|---|
| folder_id* | string | — |
| name* | string | — |
move_library_folderprivilegedMove 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)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)
| Parameter | Type | Description |
|---|---|---|
| folder_id* | string | — |
| parent_id | — | — |
delete_library_folderprivilegedDelete a library folder and everything inside it.
Args:
folder_id: The folder UUIDDelete a library folder and everything inside it. Args: folder_id: The folder UUID
| Parameter | Type | Description |
|---|---|---|
| folder_id* | string | — |
list_library_itemsList 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)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)
| Parameter | Type | Description |
|---|---|---|
| folder_id | — | — |
| offset | integer | — |
| limit | integer | — |
get_library_itemGet a library document's metadata and content.
Args:
item_id: The item UUIDGet a library document's metadata and content. Args: item_id: The item UUID
| Parameter | Type | Description |
|---|---|---|
| item_id* | string | — |
create_library_itemCreate a new markdown document in the research library.
Args:
title: Document title
content: Markdown body
folder_id: Folder UUID (optional — omit for library root)Create a new markdown document in the research library. Args: title: Document title content: Markdown body folder_id: Folder UUID (optional — omit for library root)
| Parameter | Type | Description |
|---|---|---|
| title* | string | — |
| content* | string | — |
| folder_id | — | — |
update_library_itemUpdate a library document's title and/or content (content edits create a new version).
Args:
item_id: The item UUID
title: New title (optional)
content: New markdown body (optional)Update a library document's title and/or content (content edits create a new version). Args: item_id: The item UUID title: New title (optional) content: New markdown body (optional)
| Parameter | Type | Description |
|---|---|---|
| item_id* | string | — |
| title | — | — |
| content | — | — |
move_library_itemprivilegedMove 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)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)
| Parameter | Type | Description |
|---|---|---|
| item_id* | string | — |
| folder_id | — | — |
delete_library_itemprivilegedDelete a library document and all of its stored versions.
Args:
item_id: The item UUIDDelete a library document and all of its stored versions. Args: item_id: The item UUID
| Parameter | Type | Description |
|---|---|---|
| item_id* | string | — |
list_library_item_versionsList version history for a library document (newest first).
Args:
item_id: The item UUIDList version history for a library document (newest first). Args: item_id: The item UUID
| Parameter | Type | Description |
|---|---|---|
| item_id* | string | — |
search_libraryFull-text search across the authenticated user's library documents.
Args:
query: Search terms
limit: Max results (default 20, capped at 50)Full-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50)
| Parameter | Type | Description |
|---|---|---|
| query* | string | — |
| limit | integer | — |
list_journalList 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 5…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 5…
| Parameter | Type | Description |
|---|---|---|
| offset | integer | — |
| limit | integer | — |
get_journal_entryGet 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)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)
| Parameter | Type | Description |
|---|---|---|
| entry_id* | string | — |
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_e…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_e…
| Parameter | Type | Description |
|---|---|---|
| entry_date* | string | — |
| content* | string | — |
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 jo…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 jo…
| Parameter | Type | Description |
|---|---|---|
| ticker* | string | — |
| force | boolean | — |
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…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…
| Parameter | Type | Description |
|---|---|---|
| description* | string | — |
| ticker | — | — |
| section | — | — |
| page_url | — | — |
31 of 31 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.