manawa-terminal
Manawa Terminal: финансовый ресёрч-стол с live-данными и портфелями для ассистента
Что умеет
- Искать финансовые данные по акциям, макро и рынкам с указанием источника
- Создавать и обновлять вотчлисты с фильтрацией по критериям
- Вести портфели: добавлять сделки, считать позиции и P&L
- Настраивать ценовые алерты и получать уведомления
- Хранить заметки в версионируемой библиотеке между сессиями
Какие данные видит
Ассистент входит через OAuth аккаунтом Manawa пользователя и видит только его вотчлисты, портфели и библиотеку заметок.
Нужен ли аккаунт
Не нужен: сервер работает без входа
MCP-сервер Manawa Terminal даёт ассистенту доступ к финансовым данным — ценам, отчётности компаний, звонкам по доходам, оценкам аналитиков, форекс, крипте, товарам и макропоказателям по более чем 10 000 тикеров. Также поддерживаются вотчлисты с фильтрами, портфели с расчётом P&L, ценовые алерты и версионируемая библиотека заметок. Вход выполняется через OAuth с аккаунтом Manawa, есть бесплатный тариф.
Как подключить
Как подключить 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 |