Alpaca Trading API integration for Model Context Protocol (MCP)
Manawa Terminal is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http manawa-terminal-mcp https://mcp.manawa.app/mcp
# 2 — ask your agent for something these tools do
# finance_search, list_watchlists, create_watchlist and 36 more
Manawa Terminal costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http manawa-terminal-mcp https://mcp.manawa.app/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
39 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| symbols | no | — | |
| section | no | — | |
| focus | no | — | |
| source | no | — |
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 | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
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 | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| symbols | array | yes | — |
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 | Required | Notes |
|---|---|---|---|
| watchlist_id | string | yes | — |
| name | no | — | |
| symbols | no | — |
List the authenticated user's saved screeners (filter queries + schedule). Args: offset: Skip this many screeners (default 0) limit: Page size (default 50, max 100)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
Save 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: Filter
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| query | no | — | |
| schedule | string | no | — |
| notify_on_change | boolean | no | — |
| last_symbols | no | — |
Update 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| screener_id | string | yes | — |
| name | no | — | |
| query | no | — | |
| schedule | no | — | |
| notify_on_change | no | — | |
| last_symbols | no | — |
Delete a saved screener by ID. Args: screener_id: The screener UUID from list_screeners
| Parameter | Type | Required | Notes |
|---|---|---|---|
| screener_id | string | yes | — |
Re-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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| screener_id | string | yes | — |
List the authenticated user's portfolios. Args: offset: Skip this many portfolios (default 0) limit: Page size (default 50, max 100)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
Create a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| currency | string | no | — |
Add a buy, sell, deposit, withdrawal, or dividend to a portfolio. A dividend names the stock, not $CASH. qty is the shares, price is the amount per share and must be greater than 0, and date is the pay date. Cash increases and the share count does not. The open cost drops by the part still held; the part already sold is realized P&L. Saving a buy or sell also records older div
| Parameter | Type | Required | Notes |
|---|---|---|---|
| portfolio_id | string | yes | — |
| symbol | string | yes | — |
| side | string | yes | — |
| qty | number | yes | — |
| price | number | yes | — |
| date | string | yes | — |
Get current holdings with quantity, cost basis, market value, and unrealized P&L. Open cost is already net of dividends still held on those shares. Cash includes dividend cash. Realized P&L from shares already sold is on get_portfolio_statistics. Args: portfolio_id: The portfolio UUID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| portfolio_id | string | yes | — |
Get portfolio performance statistics (returns, allocation, risk). dividend_income and dividends are the cash received, by stock. total_gain is unrealized_pnl + realized_pnl. Dividends lower the open cost while the shares are held and sit in realized_pnl after they are sold. Do not add dividend_income on top of total_gain. Args: portfolio_id: The portfolio UUID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| portfolio_id | string | yes | — |
List price, event, and clock alerts for the authenticated user. Args: offset: Skip this many alerts (default 0) limit: Page size (default 50, max 100)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
Create 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:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| symbol | no | — | |
| alert_type | string | no | — |
| direction | no | — | |
| threshold | no | — | |
| notes | string | no | — |
| event_types | no | — | |
| event_filters | no | — | |
| name | string | no | — |
| agent_instruction | string | no | — |
| max_fires | no | — | |
| schedule_at | no | — | |
| schedule_tz | no | — | |
| schedule_repeat | no | — |
Get 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
| history | boolean | no | — |
Delete an alert by ID. Args: alert_id: The alert UUID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| alert_id | string | yes | — |
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 | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
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 | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| parent_id | no | — |
Rename a library folder. Args: folder_id: The folder UUID name: New folder name
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder_id | string | yes | — |
| name | string | yes | — |
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 | Required | Notes |
|---|---|---|---|
| folder_id | string | yes | — |
| parent_id | no | — |
Delete a library folder and everything inside it. Args: folder_id: The folder UUID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| folder_id | string | yes | — |
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 | Required | Notes |
|---|---|---|---|
| folder_id | no | — | |
| offset | integer | no | — |
| limit | integer | no | — |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| item_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | — |
| content | string | yes | — |
| folder_id | no | — | |
| content_type | no | — |
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)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| item_id | string | yes | — |
| title | no | — | |
| content | no | — |
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 | Required | Notes |
|---|---|---|---|
| item_id | string | yes | — |
| folder_id | no | — |
Delete a library document and all of its stored versions. Args: item_id: The item UUID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| item_id | string | yes | — |
List version history for a library document (newest first). Args: item_id: The item UUID
| Parameter | Type | Required | Notes |
|---|---|---|---|
| item_id | string | yes | — |
Full-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| limit | integer | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offset | integer | no | — |
| limit | integer | no | — |
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 | Required | Notes |
|---|---|---|---|
| entry_id | string | yes | — |
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)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entry_date | string | yes | — |
| content | string | yes | — |
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")
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ticker | string | yes | — |
| force | boolean | no | — |
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: Opt
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | yes | — |
| ticker | no | — | |
| section | no | — | |
| page_url | no | — |
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 ticke
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | no | — | |
| ticker | no | — | |
| type | no | — | |
| limit | no | — |
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: C
| Parameter | Type | Required | Notes |
|---|---|---|---|
| content_id | no | — | |
| section | no | — | |
| language | no | — | |
| format | no | — | |
| status | no | — |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| content_id | string | yes | — |
| option_id | string | yes | — |
| force | boolean | no | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Manawa Terminal or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Manawa Terminal can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.