Manawa Terminal
Live market data, financial analysis, and portfolio research tools across 10,000+ tickers.
我该使用它吗
质量与安全性
发现(1)
- LOW在 rename_library_folder 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"manawa-terminal": {
"url": "https://mcp.manawa.app/mcp"
}
}
}远程端点
https://mcp.manawa.app/mcpstreamable-http它能做什么
工具清单
工具(34)
🟢finance_search(query, symbols, section, focus, source)
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`. Exclusive modes when a Deep Dive exists: focus=ai + section=… → narrative section focus=raw + source=… → thin data slice focus=catalog → list available Deep Dives Args: query: The user's financial question symbols: Optional ticker universe to screen (e.g. from list_watchlists) section: Optional Deep Dive section (competition, valuation, thesis, forecast, analyst_consensus, people, financials, earnings, technicals, overview, moves, markets, flow, calendar, catalysts, odds) or raw tapes: options, buzz, acceleration, heatmap. Buzz, social media, reddit, twitter, sentiment, or what people are talking about MUST be section=buzz. Do not send those to news or catalysts. Consumer sentiment and analyst sentiment are not Buzz. Stocks accelerating, price acceleration, speeding up, or speeding down MUST be section=acceleration. Do not send those to movers. Revenue, earnings, and growth acceleration are not this board. Advance/decline, names within 10% of the 52-week high or low, or the market P/S, P/E, and P/FCF medians MUST be section=heatmap. Do not send those to the sector treemap. One company's P/E is not this row. focus: Optional exclusive mode: ai | raw | auto | catalog source: Optional thin raw slice when focus=raw (comparison_peers, price_targets, consensus, quote, key_financials, …)
输入模式
{
"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"
}🟢list_watchlists(offset, limit)
List the authenticated user's watchlists and their symbols. Args: offset: Skip this many lists (default 0) limit: Page size (default 50, max 100)
输入模式
{
"type": "object",
"properties": {
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "list_watchlistsArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_watchlistsOutput"
}🟡create_watchlist(name, symbols)
Create a watchlist with the given name and ticker symbols. Args: name: Watchlist name symbols: List of stock symbols (e.g. ["AAPL", "MSFT"])
输入模式
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"symbols": {
"items": {
"type": "string"
},
"title": "Symbols",
"type": "array"
}
},
"required": [
"name",
"symbols"
],
"title": "create_watchlistArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_watchlistOutput"
}🟡update_watchlist(watchlist_id, name, symbols)
Update a watchlist's name and/or symbols. Args: watchlist_id: The watchlist UUID name: New name (optional) symbols: Updated list of symbols (optional)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "update_watchlistOutput"
}🟢list_portfolios(offset, limit)
List the authenticated user's portfolios. Args: offset: Skip this many portfolios (default 0) limit: Page size (default 50, max 100)
输入模式
{
"type": "object",
"properties": {
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "list_portfoliosArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_portfoliosOutput"
}🟡create_portfolio(name, currency)
Create a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD)
输入模式
{
"type": "object",
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"currency": {
"default": "USD",
"title": "Currency",
"type": "string"
}
},
"required": [
"name"
],
"title": "create_portfolioArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_portfolioOutput"
}🟡add_transaction(portfolio_id, symbol, side, qty, price, ...)
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 shares (or cash amount for deposit/withdrawal) price: Price per share date: Transaction date (YYYY-MM-DD)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "add_transactionOutput"
}🟢get_positions(portfolio_id)
Get current holdings with quantity, cost basis, market value, and unrealized P&L. Args: portfolio_id: The portfolio UUID
输入模式
{
"type": "object",
"properties": {
"portfolio_id": {
"title": "Portfolio Id",
"type": "string"
}
},
"required": [
"portfolio_id"
],
"title": "get_positionsArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_positionsOutput"
}🟢get_portfolio_statistics(portfolio_id)
Get portfolio performance statistics (returns, allocation, risk). Args: portfolio_id: The portfolio UUID
输入模式
{
"type": "object",
"properties": {
"portfolio_id": {
"title": "Portfolio Id",
"type": "string"
}
},
"required": [
"portfolio_id"
],
"title": "get_portfolio_statisticsArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_portfolio_statisticsOutput"
}🟢list_alerts(offset, limit)
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)
输入模式
{
"type": "object",
"properties": {
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "list_alertsArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_alertsOutput"
}🟡create_alert(symbol, alert_type, direction, threshold, notes, ...)
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: Optional description event_types: Required when alert_type is "event". One or more of: "earnings_transcript", "insider_trade", "news_stock", "press_release", "filing_8k", "filing_13f", "politician_senate", "politician_house", "merger_acquisition"
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_alertOutput"
}🟢get_notifications(offset, limit)
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.
输入模式
{
"type": "object",
"properties": {
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "get_notificationsArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_notificationsOutput"
}🔴delete_alert(alert_id)
Delete an alert by ID. Args: alert_id: The alert UUID
输入模式
{
"type": "object",
"properties": {
"alert_id": {
"title": "Alert Id",
"type": "string"
}
},
"required": [
"alert_id"
],
"title": "delete_alertArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "delete_alertOutput"
}🟢list_library_folders(offset, limit)
List folders in the authenticated user's research library. Args: offset: Skip this many folders (default 0) limit: Page size (default 50, max 100)
输入模式
{
"type": "object",
"properties": {
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "list_library_foldersArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_library_foldersOutput"
}🟡create_library_folder(name, parent_id)
Create a library folder, optionally nested under a parent. Args: name: Folder name parent_id: Parent folder UUID (optional — omit for a root folder)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_library_folderOutput"
}⚪rename_library_folder(folder_id, name)
Rename a library folder. Args: folder_id: The folder UUID name: New folder name
输入模式
{
"type": "object",
"properties": {
"folder_id": {
"title": "Folder Id",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"folder_id",
"name"
],
"title": "rename_library_folderArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "rename_library_folderOutput"
}⚪move_library_folder(folder_id, parent_id)
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)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "move_library_folderOutput"
}🔴delete_library_folder(folder_id)
Delete a library folder and everything inside it. Args: folder_id: The folder UUID
输入模式
{
"type": "object",
"properties": {
"folder_id": {
"title": "Folder Id",
"type": "string"
}
},
"required": [
"folder_id"
],
"title": "delete_library_folderArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "delete_library_folderOutput"
}🟢list_library_items(folder_id, offset, limit)
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)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_library_itemsOutput"
}🟢get_library_item(item_id)
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
输入模式
{
"type": "object",
"properties": {
"item_id": {
"title": "Item Id",
"type": "string"
}
},
"required": [
"item_id"
],
"title": "get_library_itemArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_library_itemOutput"
}🟡create_library_item(title, content, folder_id, content_type)
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.
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "create_library_itemOutput"
}🟡update_library_item(item_id, title, content)
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)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "update_library_itemOutput"
}⚪move_library_item(item_id, folder_id)
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)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "move_library_itemOutput"
}🔴delete_library_item(item_id)
Delete a library document and all of its stored versions. Args: item_id: The item UUID
输入模式
{
"type": "object",
"properties": {
"item_id": {
"title": "Item Id",
"type": "string"
}
},
"required": [
"item_id"
],
"title": "delete_library_itemArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "delete_library_itemOutput"
}🟢list_library_item_versions(item_id)
List version history for a library document (newest first). Args: item_id: The item UUID
输入模式
{
"type": "object",
"properties": {
"item_id": {
"title": "Item Id",
"type": "string"
}
},
"required": [
"item_id"
],
"title": "list_library_item_versionsArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_library_item_versionsOutput"
}🟢search_library(query, limit)
Full-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50)
输入模式
{
"type": "object",
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
}
},
"required": [
"query"
],
"title": "search_libraryArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "search_libraryOutput"
}🟢list_journal(offset, limit)
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.
输入模式
{
"type": "object",
"properties": {
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"title": "list_journalArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "list_journalOutput"
}🟢get_journal_entry(entry_id)
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)
输入模式
{
"type": "object",
"properties": {
"entry_id": {
"title": "Entry Id",
"type": "string"
}
},
"required": [
"entry_id"
],
"title": "get_journal_entryArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_journal_entryOutput"
}🟡submit_journal_draft(entry_date, content)
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
输入模式
{
"type": "object",
"properties": {
"entry_date": {
"title": "Entry Date",
"type": "string"
},
"content": {
"title": "Content",
"type": "string"
}
},
"required": [
"entry_date",
"content"
],
"title": "submit_journal_draftArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "submit_journal_draftOutput"
}🟢run_deepdive(ticker, force)
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).
输入模式
{
"type": "object",
"properties": {
"ticker": {
"title": "Ticker",
"type": "string"
},
"force": {
"default": false,
"title": "Force",
"type": "boolean"
}
},
"required": [
"ticker"
],
"title": "run_deepdiveArguments"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "run_deepdiveOutput"
}🟢report_bug(description, ticker, section, page_url)
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
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "report_bugOutput"
}🟢marketing_inbox(since, ticker, type, limit)
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)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "marketing_inboxOutput"
}🟢marketing_graphics(content_id, section, language, format, status)
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)
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "marketing_graphicsOutput"
}⚪marketing_render(content_id, option_id, force)
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
输入模式
{
"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"
}输出模式
{
"type": "object",
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "marketing_renderOutput"
}社区
证据