manawa-terminal
Manawa Terminal gives AI agents a finance research desk backed by live data, with every figure traceable to its source.
Что умеет
- Finance Search: 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
- List Watchlists: List the authenticated user's watchlists and their symbols.
- 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"])
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Manawa Terminal gives AI agents a finance research desk backed by live data, with every figure traceable to its source.
Research: prices, company financials and filings, earnings results and call transcripts, analyst estimates, FX, crypto, commodities, macro indicators, ETF holdings, insider and institutional activity, and news across 34 data domains and 10,000+ tickers. Ask in plain language; answers come back with the underlying source attached.
Workspace: watchlists you can screen by financial criteria, portfolios with positions, transactions and mark-to-market P&L, price alerts, a versioned research library that keeps revision history across sessions, and a daily journal.
Multi-currency portfolios hold cost basis at the trade-date exchange rate and mark to market at today's, so foreign holdings show the currency effect separately from the underlying price move.
Sign in with your Manawa account through OAuth. No API keys to paste. A free tier is available.
Как подключить
Как подключить manawa-terminal к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://manawa-terminal--manawa.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить manawa-terminal к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://manawa-terminal--manawa.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить manawa-terminal к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://manawa-terminal--manawa.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (29)
Технические названия из tools/list. Нужны только разработчикам.
| finance_search | 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) focus: Optional exclusive mode: ai | raw | auto | catalog source: Optional thin raw slice when focus=raw (comparison_peers, price_targets, consensus, quote, key_financials, …) |
| list_watchlists | List the authenticated user's watchlists and their symbols. |
| 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"]) |
| 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) |
| list_portfolios | List the authenticated user's portfolios. |
| create_portfolio | Create a portfolio with a name and base currency. Args: name: Portfolio name currency: Base currency (default USD) |
| add_transaction | 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) |
| get_positions | Get current holdings with quantity, cost basis, market value, and unrealized P&L. Args: portfolio_id: The portfolio UUID |
| get_portfolio_statistics | Get portfolio performance statistics (returns, allocation, risk). Args: portfolio_id: The portfolio UUID |
| list_alerts | List active price and event alerts for the authenticated user. |
| create_alert | 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" |
| get_notifications | Get recent triggered alert notifications. |
| delete_alert | Delete an alert by ID. Args: alert_id: The alert UUID |
| list_library_folders | List folders in the authenticated user's research library. |
| 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) |
| rename_library_folder | Rename a library folder. Args: folder_id: The folder UUID name: New folder name |
| 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) |
| delete_library_folder | Delete a library folder and everything inside it. Args: folder_id: The folder UUID |
| 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) |
| get_library_item | Get a library document's metadata and content. Args: item_id: The item UUID |
| create_library_item | Create a new markdown document in the research library. Args: title: Document title content: Markdown body folder_id: Folder UUID (optional — omit for library root) |
| update_library_item | Update a library document's title and/or content (content edits create a new version). Args: item_id: The item UUID title: New title (optional) content: New markdown body (optional) |
| 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) |
| delete_library_item | Delete a library document and all of its stored versions. Args: item_id: The item UUID |
| list_library_item_versions | List version history for a library document (newest first). Args: item_id: The item UUID |
| search_library | Full-text search across the authenticated user's library documents. Args: query: Search terms limit: Max results (default 20, capped at 50) |
| list_journal | 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. |
| 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) |
| 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 |