Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,536Letters: 14Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:2871eb90d3a4ed2ec746e10c15889754600366d1212517b5f1995800e77bd831
What it is
What a remote MCP server returned when asked what it offers: 34 tools

The blob, as servednamed by its sha256

{ "instructions": "\nYou are connected to the Manawa Finance MCP server.\n\n1. VERBATIM QUERIES: When calling finance_search, pass the user's EXACT question\n as-is. Do NOT rephrase, summarize, add keywords, or \"improve\" the query. The\n search API has its own NLU router that works best with the user's original words.\n Example: if the user says \"Apple Q3 2024 earnings transcript\", call\n finance_search(query=\"Apple Q3 2024 earnings transcript\") โ€” NOT\n finance_search(query=\"Apple Q3 2024 earnings results revenue\").\n FRED series codes must be passed verbatim:\n finance_search(query=\"T10Y2Y\") or finance_search(query=\"UNRATE\") or\n finance_search(query=\"US bank credit of commercial banks Dec 2024\").\n\n2. WATCHLIST / PORTFOLIO SCREENS: finance_search cannot look up the user's\n watchlists or portfolios itself. When the user asks to screen / filter a\n named list or portfolio (e.g. \"SaaS watchlist with revenue growth > 20%\"):\n a) Call list_watchlists() or list_portfolios() first (authenticated CRUD).\n b) Pick the matching list and extract its symbols array.\n c) Call finance_search(query=<filter criteria verbatim>, symbols=[...]).\n Pass only the filter criteria in `query` (not the list name) โ€” the symbols\n parameter scopes the screener universe. Do NOT invent tickers.\n\n3. SOURCE ATTRIBUTION: Every response that uses data from finance_search should\n end with the source attribution from the tool output (lines starting with\n \"๐Ÿ“Š **Source**:\"). Include that line so the user can open the underlying data.\n\n4. USAGE STATUS: finance_search may include a usage line when the account is at\n or above a usage threshold (percentage of daily search quota). When present,\n surface that line to the user so they can track remaining capacity.\n\n5. FORMAT: Present the data in a clear, readable format. Do not dump raw JSON.\n Summarize the key insights, then end with the source line (and usage line if\n present).\n\n6. NUMBERS: Quote figures only from the finance_search tool result. Do NOT invent\n prices, multiples, or peer metrics from memory. If a number is missing, say so.\n\n7. EXCLUSIVE MODES + FOLLOW-UPS: Default is AI when a Deep Dive exists. The\n structured result includes focus_used, sources[] (fetch handles), origin\n (provenance + dates), age_days, stale, next_calls, and attribution.\n Prefer focus=ai + section=โ€ฆ for narrative; focus=raw + source=โ€ฆ for one thin\n table (e.g. source=comparison_peers, source=price_targets). Follow next_calls\n rather than guessing.\n Sections: competition, financials, valuation, forecast, analyst_consensus,\n people, thesis, earnings, technicals, overview, moves, markets, flow, calendar, catalysts, odds, options, buzz, acceleration, heatmap.\n There is no Capital tab. Do not pass section=capital. Dividend and buyback\n questions are cash flow on Financials, not a stock tab.\n analyst_consensus (price targets, outlook, bullish/bearish) opens Valuation\n (/stock/T/valuation). The Forecast letter score stays /stock/T/analysis.\n A company's own prediction markets open /stock/T/predictions. section=odds\n stays the market-wide Predictions brain (/stocks/predictions?view=ai).\n BUZZ: buzz, social media, reddit, twitter, sentiment, or what people are\n talking about is section=buzz (the Stocks Buzz board). Pass the question\n verbatim. Do not rewrite it into news and do not use section=catalysts.\n Consumer sentiment and analyst sentiment are not this board.\n ACCELERATING: stocks accelerating, price acceleration, speeding up, or\n speeding down is section=acceleration (the Up and Down tables). Pass the\n question verbatim. Do not rewrite it into movers. Revenue, earnings, and\n growth acceleration are not this board.\n HEATMAP ROW: advance/decline, names within 10% of the 52-week high or low,\n or the market P/S, P/E, and P/FCF medians are section=heatmap. Pass the\n question verbatim. Do not rewrite it into the sector treemap. One company's\n P/E is not this row.\n\n8. MANUAL DEEPDIVE: finance_search only reads existing Deep Dives. To generate\n or refresh one, call run_deepdive(ticker=...). This consumes one monthly\n custom-run grant (Basic 10 / Pro 50 / Free 0) โ€” prepaid search credits\n cannot pay for it. The call queues generation and returns immediately;\n do not poll. Tell the user it is queued and they will be notified.\n\n9. BUG REPORTS: When the user asks to log a bug, or you have confirmed a\n real data/UI error (not a missing Deep Dive or a 429), call report_bug.\n Pass ticker/section when known so admin triage gets a terminal URL.\n Do not file speculative or \"just in case\" bugs.\n\n10. ADMIN MARKETING: marketing_inbox, marketing_graphics, and marketing_render\n are admin-only. Inbox first (since / ticker / type), then\n marketing_graphics(content_id) for live formats, then marketing_render and\n wait for image.url. Do not poll. Skip the item if options is empty.\n\nExample response format:\n[Your analysis of the data]\n\n๐Ÿ“Š **Source**: [Manawa Terminal](https://terminal.manawa.app) ยท [๐Ÿ“บ View AAPL overview](https://terminal.manawa.app/stock/AAPL)\nโšก You're 75% through today's searches\n", "tools": [ { "description": "Add a buy, sell, deposit, or withdrawal transaction to a portfolio.\n\n Args:\n portfolio_id: The portfolio UUID\n symbol: Stock symbol (e.g. \"AAPL\"). For deposit/withdrawal use \"$CASH\"\n (aliases \"CASH\" / blank are normalized to \"$CASH\").\n side: \"buy\", \"sell\", \"deposit\", or \"withdrawal\"\n qty: Number of shares (or cash amount for deposit/withdrawal)\n price: Price per share\n date: Transaction date (YYYY-MM-DD)\n ", "inputSchema": { "properties": { "date": { "title": "Date", "type": "string" }, "portfolio_id": { "title": "Portfolio Id", "type": "string" }, "price": { "title": "Price", "type": "number" }, "qty": { "title": "Qty", "type": "number" }, "side": { "title": "Side", "type": "string" }, "symbol": { "title": "Symbol", "type": "string" } }, "required": [ "portfolio_id", "symbol", "side", "qty", "price", "date" ], "title": "add_transactionArguments", "type": "object" }, "name": "add_transaction", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "add_transactionOutput", "type": "object" } }, { "description": "Create a price or event alert for a symbol.\n\n Args:\n symbol: Stock symbol (e.g. \"AAPL\")\n alert_type: \"target_price\", \"movement_pct\", or \"event\"\n direction: Required for price alerts โ€” \"above\", \"below\", or \"either\"\n threshold: Required for price alerts โ€” price level or percentage move\n notes: Optional description\n event_types: Required when alert_type is \"event\". One or more of:\n \"earnings_transcript\", \"insider_trade\", \"news_stock\", \"press_release\",\n \"filing_8k\", \"filing_13f\", \"politician_senate\", \"politician_house\",\n \"merger_acquisition\"\n ", "inputSchema": { "properties": { "alert_type": { "title": "Alert Type", "type": "string" }, "direction": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Direction" }, "event_types": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Event Types" }, "notes": { "default": "", "title": "Notes", "type": "string" }, "symbol": { "title": "Symbol", "type": "string" }, "threshold": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Threshold" } }, "required": [ "symbol", "alert_type" ], "title": "create_alertArguments", "type": "object" }, "name": "create_alert", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "create_alertOutput", "type": "object" } }, { "description": "Create a library folder, optionally nested under a parent.\n\n Args:\n name: Folder name\n parent_id: Parent folder UUID (optional โ€” omit for a root folder)\n ", "inputSchema": { "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" }, "name": "create_library_folder", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "create_library_folderOutput", "type": "object" } }, { "description": "Create a markdown or HTML document in the research library.\n\n Args:\n title: Document title\n content: Markdown body, or raw HTML when content_type is text/html\n folder_id: Folder UUID (optional โ€” omit for library root)\n content_type: text/markdown (default) or text/html. HTML is stored as source.\n ", "inputSchema": { "properties": { "content": { "title": "Content", "type": "string" }, "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Content Type" }, "folder_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Folder Id" }, "title": { "title": "Title", "type": "string" } }, "required": [ "title", "content" ], "title": "create_library_itemArguments", "type": "object" }, "name": "create_library_item", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "create_library_itemOutput", "type": "object" } }, { "description": "Create a portfolio with a name and base currency.\n\n Args:\n name: Portfolio name\n currency: Base currency (default USD)\n ", "inputSchema": { "properties": { "currency": { "default": "USD", "title": "Currency", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "create_portfolioArguments", "type": "object" }, "name": "create_portfolio", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "create_portfolioOutput", "type": "object" } }, { "description": "Create a watchlist with the given name and ticker symbols.\n\n Args:\n name: Watchlist name\n symbols: List of stock symbols (e.g. [\"AAPL\", \"MSFT\"])\n ", "inputSchema": { "properties": { "name": { "title": "Name", "type": "string" }, "symbols": { "items": { "type": "string" }, "title": "Symbols", "type": "array" } }, "required": [ "name", "symbols" ], "title": "create_watchlistArguments", "type": "object" }, "name": "create_watchlist", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "create_watchlistOutput", "type": "object" } }, { "description": "Delete an alert by ID.\n\n Args:\n alert_id: The alert UUID\n ", "inputSchema": { "properties": { "alert_id": { "title": "Alert Id", "type": "string" } }, "required": [ "alert_id" ], "title": "delete_alertArguments", "type": "object" }, "name": "delete_alert", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "delete_alertOutput", "type": "object" } }, { "description": "Delete a library folder and everything inside it.\n\n Args:\n folder_id: The folder UUID\n ", "inputSchema": { "properties": { "folder_id": { "title": "Folder Id", "type": "string" } }, "required": [ "folder_id" ], "title": "delete_library_folderArguments", "type": "object" }, "name": "delete_library_folder", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "delete_library_folderOutput", "type": "object" } }, { "description": "Delete a library document and all of its stored versions.\n\n Args:\n item_id: The item UUID\n ", "inputSchema": { "properties": { "item_id": { "title": "Item Id", "type": "string" } }, "required": [ "item_id" ], "title": "delete_library_itemArguments", "type": "object" }, "name": "delete_library_item", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "delete_library_itemOutput", "type": "object" } }, { "description": "Search financial data and return an answer with an inline widget.\n\n Covers stocks, macro, forex, crypto, commodities, earnings, technicals,\n and related market questions. Pass the user's question in `query` without\n rephrasing.\n\n To screen a named watchlist or portfolio, call list_watchlists or\n list_portfolios first, then pass the symbols here with filter criteria in\n `query`.\n\n Exclusive modes when a Deep Dive exists:\n focus=ai + section=โ€ฆ โ†’ narrative section\n focus=raw + source=โ€ฆ โ†’ thin data slice\n focus=catalog โ†’ list available Deep Dives\n\n Args:\n query: The user's financial question\n symbols: Optional ticker universe to screen (e.g. from list_watchlists)\n section: Optional Deep Dive section (competition, valuation, thesis,\n forecast, analyst_consensus, people, financials, earnings,\n technicals, overview, moves, markets, flow, calendar, catalysts, odds)\n or raw tapes: options, buzz, acceleration, heatmap.\n Buzz, social media, reddit, twitter, sentiment, or what people are\n talking about MUST be section=buzz. Do not send those to news or\n catalysts. Consumer sentiment and analyst sentiment are not Buzz.\n Stocks accelerating, price acceleration, speeding up, or speeding\n down MUST be section=acceleration. Do not send those to movers.\n Revenue, earnings, and growth acceleration are not this board.\n Advance/decline, names within 10% of the 52-week high or low, or\n the market P/S, P/E, and P/FCF medians MUST be section=heatmap.\n Do not send those to the sector treemap. One company's P/E is not\n this row.\n focus: Optional exclusive mode: ai | raw | auto | catalog\n source: Optional thin raw slice when focus=raw (comparison_peers,\n price_targets, consensus, quote, key_financials, โ€ฆ)\n ", "inputSchema": { "properties": { "focus": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Focus" }, "query": { "title": "Query", "type": "string" }, "section": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Section" }, "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Source" }, "symbols": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Symbols" } }, "required": [ "query" ], "title": "finance_searchArguments", "type": "object" }, "name": "finance_search", "outputSchema": null }, { "description": "Get a full generated journal entry by ID from list_journal.\n\n Draft ids from submit_journal_draft are not readable until end-of-day\n generation; use list_journal after the daily run for valid entry ids\n (integer or legacy UUID).\n\n Args:\n entry_id: Journal entry id from list_journal (integer or UUID)\n ", "inputSchema": { "properties": { "entry_id": { "title": "Entry Id", "type": "string" } }, "required": [ "entry_id" ], "title": "get_journal_entryArguments", "type": "object" }, "name": "get_journal_entry", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "get_journal_entryOutput", "type": "object" } }, { "description": "Get a library document's metadata and content.\n\n Content is markdown, raw HTML (content_type text/html), or a signed URL for PDFs.\n\n Args:\n item_id: The item UUID\n ", "inputSchema": { "properties": { "item_id": { "title": "Item Id", "type": "string" } }, "required": [ "item_id" ], "title": "get_library_itemArguments", "type": "object" }, "name": "get_library_item", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "get_library_itemOutput", "type": "object" } }, { "description": "Get recent triggered alert notifications.\n\n Args:\n offset: Skip this many notifications (default 0)\n limit: Page size (default 50, max 100). Upstream returns at most 50 unread.\n ", "inputSchema": { "properties": { "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "get_notificationsArguments", "type": "object" }, "name": "get_notifications", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "get_notificationsOutput", "type": "object" } }, { "description": "Get portfolio performance statistics (returns, allocation, risk).\n\n Args:\n portfolio_id: The portfolio UUID\n ", "inputSchema": { "properties": { "portfolio_id": { "title": "Portfolio Id", "type": "string" } }, "required": [ "portfolio_id" ], "title": "get_portfolio_statisticsArguments", "type": "object" }, "name": "get_portfolio_statistics", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "get_portfolio_statisticsOutput", "type": "object" } }, { "description": "Get current holdings with quantity, cost basis, market value, and unrealized P&L.\n\n Args:\n portfolio_id: The portfolio UUID\n ", "inputSchema": { "properties": { "portfolio_id": { "title": "Portfolio Id", "type": "string" } }, "required": [ "portfolio_id" ], "title": "get_positionsArguments", "type": "object" }, "name": "get_positions", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "get_positionsOutput", "type": "object" } }, { "description": "List active price and event alerts for the authenticated user.\n\n Args:\n offset: Skip this many alerts (default 0)\n limit: Page size (default 50, max 100)\n ", "inputSchema": { "properties": { "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "list_alertsArguments", "type": "object" }, "name": "list_alerts", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_alertsOutput", "type": "object" } }, { "description": "List generated daily research journal entries (most recent first).\n\n Entries appear only after the automatic end-of-day journal generation run.\n Drafts from submit_journal_draft are not listed until that run completes.\n\n Args:\n offset: Skip this many entries (default 0)\n limit: Page size (default 50, max 100). Upstream returns at most 90 days.\n ", "inputSchema": { "properties": { "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "list_journalArguments", "type": "object" }, "name": "list_journal", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_journalOutput", "type": "object" } }, { "description": "List folders in the authenticated user's research library.\n\n Args:\n offset: Skip this many folders (default 0)\n limit: Page size (default 50, max 100)\n ", "inputSchema": { "properties": { "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "list_library_foldersArguments", "type": "object" }, "name": "list_library_folders", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_library_foldersOutput", "type": "object" } }, { "description": "List version history for a library document (newest first).\n\n Args:\n item_id: The item UUID\n ", "inputSchema": { "properties": { "item_id": { "title": "Item Id", "type": "string" } }, "required": [ "item_id" ], "title": "list_library_item_versionsArguments", "type": "object" }, "name": "list_library_item_versions", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_library_item_versionsOutput", "type": "object" } }, { "description": "List documents in a library folder, or at the root if no folder is given.\n\n Args:\n folder_id: Folder UUID to list (optional โ€” omit for root-level items)\n offset: Skip this many items (default 0)\n limit: Page size (default 50, max 100)\n ", "inputSchema": { "properties": { "folder_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Folder Id" }, "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "list_library_itemsArguments", "type": "object" }, "name": "list_library_items", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_library_itemsOutput", "type": "object" } }, { "description": "List the authenticated user's portfolios.\n\n Args:\n offset: Skip this many portfolios (default 0)\n limit: Page size (default 50, max 100)\n ", "inputSchema": { "properties": { "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "list_portfoliosArguments", "type": "object" }, "name": "list_portfolios", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_portfoliosOutput", "type": "object" } }, { "description": "List the authenticated user's watchlists and their symbols.\n\n Args:\n offset: Skip this many lists (default 0)\n limit: Page size (default 50, max 100)\n ", "inputSchema": { "properties": { "limit": { "default": 50, "title": "Limit", "type": "integer" }, "offset": { "default": 0, "title": "Offset", "type": "integer" } }, "title": "list_watchlistsArguments", "type": "object" }, "name": "list_watchlists", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "list_watchlistsOutput", "type": "object" } }, { "description": "Admin only. Live formats for one inbox item, or the catalog.\n\n For a bot, pass content_id from marketing_inbox. Empty options means skip\n the item. Already-rendered images are included so you can reuse a cache hit.\n\n Args:\n content_id: gc:{id} or rd:{uuid} โ€” live formats for that item\n section: Catalog filter (no content_id)\n language: Catalog filter\n format: Catalog filter\n status: live or draft (catalog only)\n ", "inputSchema": { "properties": { "content_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Content Id" }, "format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Format" }, "language": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Language" }, "section": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Section" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" } }, "title": "marketing_graphicsArguments", "type": "object" }, "name": "marketing_graphics", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "marketing_graphicsOutput", "type": "object" } }, { "description": "Admin only. Latest teasers plus already-generated images.\n\n Use ticker for all current items on a symbol, type for one content_type\n across symbols, or since for the worker poll. Then call\n marketing_graphics(content_id) for live formats. Reuse items[].images[]\n when the option you want is already rendered.\n\n Args:\n since: ISO timestamptz โ€” inbox newer than this\n ticker: Current items for this symbol\n type: allowlisted content_type or research_drop\n limit: 1โ€“200 (default 50)\n ", "inputSchema": { "properties": { "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Limit" }, "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" } }, "title": "marketing_inboxArguments", "type": "object" }, "name": "marketing_inbox", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "marketing_inboxOutput", "type": "object" } }, { "description": "Admin only. Render one live format and wait until image.url exists.\n\n Blocks until GCS has the PNG (or a cache hit). Do not poll. Draft\n formats return option_not_live.\n\n Args:\n content_id: gc:{id} or rd:{uuid}\n option_id: live option from marketing_graphics\n force: Bypass render cache\n ", "inputSchema": { "properties": { "content_id": { "title": "Content Id", "type": "string" }, "force": { "default": false, "title": "Force", "type": "boolean" }, "option_id": { "title": "Option Id", "type": "string" } }, "required": [ "content_id", "option_id" ], "title": "marketing_renderArguments", "type": "object" }, "name": "marketing_render", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "marketing_renderOutput", "type": "object" } }, { "description": "Move a library folder under a different parent (or to root).\n\n Args:\n folder_id: The folder UUID to move\n parent_id: New parent folder UUID (omit / null for library root)\n ", "inputSchema": { "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" }, "name": "move_library_folder", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "move_library_folderOutput", "type": "object" } }, { "description": "Move a library document into a different folder (or to root).\n\n Args:\n item_id: The item UUID to move\n folder_id: Destination folder UUID (omit / null for library root)\n ", "inputSchema": { "properties": { "folder_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Folder Id" }, "item_id": { "title": "Item Id", "type": "string" } }, "required": [ "item_id" ], "title": "move_library_itemArguments", "type": "object" }, "name": "move_library_item", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "move_library_itemOutput", "type": "object" } }, { "description": "Rename a library folder.\n\n Args:\n folder_id: The folder UUID\n name: New folder name\n ", "inputSchema": { "properties": { "folder_id": { "title": "Folder Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "folder_id", "name" ], "title": "rename_library_folderArguments", "type": "object" }, "name": "rename_library_folder", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "rename_library_folderOutput", "type": "object" } }, { "description": "Log a bug in the same inbox as the terminal bug button (5 per user per day).\n\n Use only when the user asks, or when you have confirmed a real data/UI\n error. Do not file speculative bugs. Pass ticker/section so admins get a\n terminal URL; page_url is optional if it is already a terminal.manawa.app link.\n\n Args:\n description: What is wrong (10โ€“2000 characters)\n ticker: Optional stock symbol the bug is about\n section: Optional tab (overview, financials, thesis, valuation, โ€ฆ)\n page_url: Optional full terminal URL if already known\n ", "inputSchema": { "properties": { "description": { "title": "Description", "type": "string" }, "page_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Page Url" }, "section": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Section" }, "ticker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Ticker" } }, "required": [ "description" ], "title": "report_bugArguments", "type": "object" }, "name": "report_bug", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "report_bugOutput", "type": "object" } }, { "description": "Queue a full DeepDive suite for a stock using a monthly custom-run grant.\n\n Prepaid search credits cannot pay for this. Free plans have 0 runs;\n Basic has 10/month; Pro has 50/month. Re-running a ticker already\n unlocked this month does not consume another grant. The call returns\n as soon as the job is queued โ€” do not poll.\n\n Args:\n ticker: Stock symbol (e.g. \"AAPL\")\n force: Re-queue every chapter even when a current report exists.\n Use when on-file content is the wrong instrument (e.g. ZS\n Thesis written as soybeans).\n ", "inputSchema": { "properties": { "force": { "default": false, "title": "Force", "type": "boolean" }, "ticker": { "title": "Ticker", "type": "string" } }, "required": [ "ticker" ], "title": "run_deepdiveArguments", "type": "object" }, "name": "run_deepdive", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "run_deepdiveOutput", "type": "object" } }, { "description": "Full-text search across the authenticated user's library documents.\n\n Args:\n query: Search terms\n limit: Max results (default 20, capped at 50)\n ", "inputSchema": { "properties": { "limit": { "default": 20, "title": "Limit", "type": "integer" }, "query": { "title": "Query", "type": "string" } }, "required": [ "query" ], "title": "search_libraryArguments", "type": "object" }, "name": "search_library", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "search_libraryOutput", "type": "object" } }, { "description": "Submit a journal draft for a day. Same-day resubmissions are retained as separate drafts.\n\n The draft is accepted immediately but the readable daily journal entry is\n generated automatically at end of day; it then appears in list_journal.\n The returned draft id is not a list_journal / get_journal_entry id until then.\n\n Args:\n entry_date: Day the draft is for (YYYY-MM-DD)\n content: Draft text\n ", "inputSchema": { "properties": { "content": { "title": "Content", "type": "string" }, "entry_date": { "title": "Entry Date", "type": "string" } }, "required": [ "entry_date", "content" ], "title": "submit_journal_draftArguments", "type": "object" }, "name": "submit_journal_draft", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "submit_journal_draftOutput", "type": "object" } }, { "description": "Update a library document's title and/or content (content edits create a new version).\n\n Content is markdown, or raw HTML when the document is already text/html.\n The document type does not change.\n\n Args:\n item_id: The item UUID\n title: New title (optional)\n content: New markdown or HTML source (optional)\n ", "inputSchema": { "properties": { "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Content" }, "item_id": { "title": "Item Id", "type": "string" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Title" } }, "required": [ "item_id" ], "title": "update_library_itemArguments", "type": "object" }, "name": "update_library_item", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "update_library_itemOutput", "type": "object" } }, { "description": "Update a watchlist's name and/or symbols.\n\n Args:\n watchlist_id: The watchlist UUID\n name: New name (optional)\n symbols: Updated list of symbols (optional)\n ", "inputSchema": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Name" }, "symbols": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Symbols" }, "watchlist_id": { "title": "Watchlist Id", "type": "string" } }, "required": [ "watchlist_id" ], "title": "update_watchlistArguments", "type": "object" }, "name": "update_watchlist", "outputSchema": { "properties": { "result": { "title": "Result", "type": "string" } }, "required": [ "result" ], "title": "update_watchlistOutput", "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2871eb90d3a4ed2ec746e10c15889754600366d1212517b5f1995800e77bd831 | sha256sum