Manawa Terminal

app.manawa由 manawa.app 发布官方发布者v1.0.0更新于 Oct 24, 2026

Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.

已验证Streamable HTTP可网页运行效率与工作流金融知识与记忆

概览

AI 生成的概览

远程 MCP 服务器,提供 10,000+ 支标的的行情数据、财报研究、自选列表、筛选器、投资组合、提醒和研究资料库。

可以做什么
检索金融数据并获取财报电话会内容,附带财报数字与股价变动,覆盖股票、宏观、外汇、加密货币和商品。管理自选列表与已保存的筛选器,包括按计划运行并报告新进或退出的标的。读取 agent-rail 策略及其历史版本。创建投资组合,添加或修改订单与交易,取消未成交订单,并读取持仓、订单规则和业绩统计。管理价格、事件和时钟提醒及其通知。整理研究资料库中的文件夹与 Markdown 或 HTML 文档,支持版本历史和全文搜索,并读取自动生成的每日研究日志。
适用场景
适合让助手回答行情与财报问题、跟踪自选列表或筛选器、维护投资组合及其订单,或把研究笔记归档到资料库。更适合持续性的研究与监控工作,而非一次性查询。
运行要求
远程 streamable HTTP 端点 mcp.manawa.app;未声明软件包、环境变量或请求头。工具作用于已认证用户的自选列表、投资组合、提醒和资料库,因此需要已登录账户。筛选器每周计划需要 Pro 方案。
安装前请注意
许多工具会写入账户:创建、更新和删除自选列表、筛选器、提醒、投资组合、订单、交易、文件夹和文档,删除文件夹会连同其中所有内容一并删除。投资组合与订单工具会改变持仓和订单状态,但未说明会实际执行交易。研究资料库内容和投资组合数据会发送到远程服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Manawa Terminal,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/app.manawa%2Fmanawa-terminal/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "manawa-terminal": {
      "type": "http",
      "url": "https://mcp.manawa.app/mcp"
    }
  }
}

工具

46

earnings_rag

Search earnings call evidence

Retrieve what was said on earnings calls, plus the print and the price move. Use this for one season across several names, or this season versus a prior season. Pass tickers you already have, or a sector label such as Financials or Technology. Banks, insurers, and brokers are Financials. Do not invent symbols. finance_search still answers when a company reports, the Earnings Deep Dive, and a request for the full transcript. Args: question: What to look for in the calls, such as credit costs or guidance. tickers: Symbols to search. Optional when sector is set. sector: SIC sector stored on the chunks, such as Financials or Technology. conference_from: Season start, YYYY-MM-DD, with conference_to. conference_to: Season end, YYYY-MM-DD. compare_from: Prior season start, with compare_to. compare_to: Prior season end. fiscal_year: Fiscal year, with fiscal_quarter, instead of dates. fiscal_quarter: Fiscal quarter 1-4. compare_fiscal_year: Prior fiscal year, with compare_fiscal_quarter. compare_fiscal_quarter: Prior fiscal quarter 1-4. last_n_quarters: Recent calls per ticker, 1-8. Not used with compare. chunks_per_ticker: Excerpts per call, 1-5. Default 3.

输入参数sectortickersquestion必填compare_tofiscal_yearcompare_fromconference_tofiscal_quarterconference_fromlast_n_quarterschunks_per_tickercompare_fiscal_year另有 1 个

list_watchlists

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)

输入参数limitoffset

create_watchlist

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"])

输入参数name必填symbols必填

update_watchlist

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)

输入参数namesymbolswatchlist_id必填

list_screeners

List screeners

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)

输入参数limitoffset

create_screener

Create screener

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 blob {universe, fmp, metrics, ai, member?, view?} schedule: "off", "daily", or "weekly" (weekly requires Pro) notify_on_change: Notify on enter/exit after the first seed (default true) last_symbols: Current result tickers to seed the enter/exit baseline

输入参数namequeryschedulelast_symbolsnotify_on_change

update_screener

Update screener

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/exit baseline from the live table (optional)

输入参数namequeryschedulescreener_id必填last_symbolsnotify_on_change

delete_screener

Delete screener

Delete a saved screener by ID. Args: screener_id: The screener UUID from list_screeners

输入参数screener_id必填

run_screener

Run screener

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

输入参数screener_id必填

list_strategies

List strategies

List the authenticated user's agent-rail strategies (id, name, active, color). Does not include full markdown — use get_strategy for the live playbook text, settings, and links. Strategy writes require the Terminal browser or agent.

无需输入参数。

get_strategy

Get strategy

Read one strategy's current or historical generation (markdown, settings, links). Args: strategy_id: Strategy UUID from list_strategies generation: Optional GCS generation for an older save (from list_strategy_versions)

输入参数generationstrategy_id必填

list_strategy_versions

List strategy versions

List saved generations for a strategy (newest first, with version notes). Args: strategy_id: Strategy UUID from list_strategies

输入参数strategy_id必填

list_portfolios

List portfolios

List the authenticated user's portfolios. Args: offset: Skip this many portfolios (default 0) limit: Page size (default 50, max 100)

输入参数limitoffset

create_portfolio

Create portfolio

Create a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD)

输入参数name必填currency

add_transaction

Add portfolio transaction

Add a buy, sell, deposit, withdrawal, dividend, short, or cover to a portfolio. Attach an investment case with library_item_id. That is the document id. search_library returns it as item_id. list_library_items returns it as id. Pass the id, not the title. The accept card and the transaction row show the case. Leave library_item_id empty when there is no case. A buy, sell, short, or cover is a portfolio order. Call get_portfolio_rules first and size it to those rules. filled means the book took it. pending means the card is open: do not ask again and do not send a second order. A refused error is a portfolio rule. Do not shrink the order. Dividend, deposit, and withdrawal still record a transaction immediately. order_type market ignores price and uses the live price. With HIL on, or the order above Skip HIL up to, the card opens at that live price. HIL off, or under the skip, fills. A past date records that day's average. A future date is refused. order_type limit requires price. The card opens before the limit rests when HIL requires it. Accept arms it. The card does not open again when the price hits. A past date records the price after that day's range check. expires_kind is gtc (90 days), day, or delete_after. delete_after needs expires_at. after_hours lets a stock or ETF print in the extended session. on_touch review wakes you when the limit hits so you can look and then submit. on_touch direct applies the book rules then, with no second look. A hard limit still refuses. HIL still opens the card for a resting limit. 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 come back as the terminal's 400. Do not rewrite

输入参数qty必填date必填side必填pricesymbol必填on_touchexpires_atorder_typeafter_hourslimit_priceexpires_kindportfolio_id必填另有 1 个

edit_order

Edit portfolio order

Change an open portfolio order. Use this before cancel_order. Attach or replace the investment case with library_item_id. That is the document id. search_library returns it as item_id. list_library_items returns it as id. Pass the id, not the title. An empty library_item_id removes the case. The accept card and the book show it. qty, price, expires_kind (day, gtc, or delete_after), expires_at, after_hours, and library_item_id. Send only the fields that change. Rules still apply. HIL on, or an order above Skip HIL up to, opens the accept card again. A day order needs an open session. A good till that lasts past the next open can stay open while the session is closed. Args: portfolio_id: The portfolio UUID order_id: The order UUID qty: New share count price: New price, or the new limit expires_kind: day, gtc (90 days), or delete_after expires_at: Required with delete_after. Naive times are New York. after_hours: Extended session for a stock or ETF library_item_id: The investment case. The document id from search_library (item_id) or list_library_items (id). Not the title. An empty string removes the case.

输入参数qtypriceorder_id必填expires_atafter_hoursexpires_kindportfolio_id必填library_item_id

cancel_order

Cancel portfolio order

Cancel an open portfolio order. No fill is written. Args: portfolio_id: The portfolio UUID order_id: The order UUID

输入参数order_id必填portfolio_id必填

get_positions

Get portfolio positions

Get 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 P&L from closed longs and shorts is on get_portfolio_statistics. Args: portfolio_id: The portfolio UUID

输入参数portfolio_id必填

get_portfolio_rules

Get portfolio rules

Read the order limits for a portfolio. Call this before add_transaction on a buy, sell, short, or cover. The rules say which assets are allowed and how large an order may be. This tool cannot change the rules. Args: portfolio_id: The portfolio UUID

输入参数portfolio_id必填

get_portfolio_statistics

Get portfolio statistics

Get 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

输入参数portfolio_id必填

list_alerts

List alerts

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)

输入参数limitoffset

create_alert

Create alert

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: Required for price alerts — price level or percentage move notes: Optional description. Not the agent instruction. event_types: Required when alert_type is "event". Live-tape ids such as filing_13f, politician_senate, options_unusual, ipo_upcoming. event_filters: Optional slices. Example: {"politician_senate": {"type": ["purchase"]}}. An omitted field matches every value. name: Optional title. Blank is filled from the rule. agent_instruction: What the agent does when this fires. Empty means notify only. max_fires: How many fires before it leaves Active. Omit to keep a repeating alert firing. schedule_at: ISO time. Required when alert_type is "schedule". schedule_tz: IANA zone. UTC when omitted. schedule_repeat: once, daily, weekdays, weekly, or monthly. Default once.

输入参数namenotessymboldirectionmax_firesthresholdalert_typeevent_typesschedule_atschedule_tzevent_filtersschedule_repeat另有 1 个

get_notifications

Get notifications

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.

输入参数limitoffsethistory

delete_alert

Delete price alert

Delete an alert by ID. Args: alert_id: The alert UUID

输入参数alert_id必填

list_library_folders

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)

输入参数limitoffset

create_library_folder

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)

输入参数name必填parent_id

rename_library_folder

Rename library folder

Rename a library folder. Args: folder_id: The folder UUID name: New folder name

输入参数name必填folder_id必填

move_library_folder

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)

输入参数folder_id必填parent_id

delete_library_folder

Delete library folder

Delete a library folder and everything inside it. Args: folder_id: The folder UUID

输入参数folder_id必填

list_library_items

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)

输入参数limitoffsetfolder_id

get_library_item

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

输入参数item_id必填

create_library_item

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.

输入参数title必填content必填folder_idcontent_type

update_library_item

Update library item (versioned)

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)

输入参数titlecontentitem_id必填

move_library_item

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)

输入参数item_id必填folder_id

delete_library_item

Delete library item

Delete a library document and all of its stored versions. Args: item_id: The item UUID

输入参数item_id必填

list_library_item_versions

List library item versions

List version history for a library document (newest first). Args: item_id: The item UUID

输入参数item_id必填

search_library

Search research library

Full-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50)

输入参数limitquery必填

list_journal

List journal entries

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.

输入参数limitoffset

get_journal_entry

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)

输入参数entry_id必填

submit_journal_draft

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

输入参数content必填entry_date必填

run_deepdive

Run DeepDive analysis

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).

输入参数forceticker必填

report_bug

Report a 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

输入参数tickersectionpage_urldescription必填

marketing_inbox

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)

输入参数typelimitsinceticker

marketing_graphics

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)

输入参数formatstatussectionlanguagecontent_id

marketing_render

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

输入参数forceoption_id必填content_id必填

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 83%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。