# Manawa Terminal (remote · mcp.manawa.app)

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

- Trust score: 79/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-12

## Components

- remote · `mcp.manawa.app`: 79/100 (this document), [markdown](https://verifymcp.io/servers/app-manawa-manawa-terminal/mcp.md), [page](https://verifymcp.io/servers/app-manawa-manawa-terminal/mcp)

## Channel facts

- Endpoint: `https://mcp.manawa.app/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-12.

- **Endpoint Security**: 91/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 86/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 2622 tokens (~87/item across 30 items; 29 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (97% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### Claude

```bash
claude mcp add --transport http app-manawa-manawa-terminal https://mcp.manawa.app/mcp
```

### Codex

```toml
[mcp_servers.app-manawa-manawa-terminal]
url = "https://mcp.manawa.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-manawa-manawa-terminal": {
      "type": "remote",
      "url": "https://mcp.manawa.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-manawa-manawa-terminal --url https://mcp.manawa.app/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-manawa-manawa-terminal:
    url: "https://mcp.manawa.app/mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-12 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-11 (score 78, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-09 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-07 (score 75, +14)

- [security improvement] Authorization: fail → pass
- [functional improvement] Stability: unverified → 0.03
- [functional] The server no longer declares the “experimental” capability

### 2026-08-06 (score 61)

First indexed and scored.

## MCP tools (29)

### `finance_search` (~277 tokens)

Search financial data

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, …)

Input parameters:

- `focus`
- `query` (string, required)
- `section`
- `source`
- `symbols`

### `list_watchlists` (~19 tokens)

List watchlists

List the authenticated user's watchlists and their symbols.

Output parameters:

- `result` (string)

### `create_watchlist` (~65 tokens)

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

Input parameters:

- `name` (string, required)
- `symbols` (array, required)

Output parameters:

- `result` (string)

### `update_watchlist` (~70 tokens)

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)

Input parameters:

- `name`
- `symbols`
- `watchlist_id` (string, required)

Output parameters:

- `result` (string)

### `list_portfolios` (~15 tokens)

List portfolios

List the authenticated user's portfolios.

Output parameters:

- `result` (string)

### `create_portfolio` (~52 tokens)

Create portfolio

Create a portfolio with a name and base currency.

    Args:
        name: Portfolio name
        currency: Base currency (default USD)

Input parameters:

- `currency` (string)
- `name` (string, required)

Output parameters:

- `result` (string)

### `add_transaction` (~167 tokens)

Add portfolio 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)

Input parameters:

- `date` (string, required)
- `portfolio_id` (string, required)
- `price` (number, required)
- `qty` (number, required)
- `side` (string, required)
- `symbol` (string, required)

Output parameters:

- `result` (string)

### `get_positions` (~47 tokens)

Get portfolio positions

Get current holdings with quantity, cost basis, market value, and unrealized P&L.

    Args:
        portfolio_id: The portfolio UUID

Input parameters:

- `portfolio_id` (string, required)

Output parameters:

- `result` (string)

### `get_portfolio_statistics` (~41 tokens)

Get portfolio statistics

Get portfolio performance statistics (returns, allocation, risk).

    Args:
        portfolio_id: The portfolio UUID

Input parameters:

- `portfolio_id` (string, required)

Output parameters:

- `result` (string)

### `list_alerts` (~20 tokens)

List price alerts

List active price and event alerts for the authenticated user.

Output parameters:

- `result` (string)

### `create_alert` (~198 tokens)

Create price 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"

Input parameters:

- `alert_type` (string, required)
- `direction`
- `event_types`
- `notes` (string)
- `symbol` (string, required)
- `threshold`

Output parameters:

- `result` (string)

### `get_notifications` (~14 tokens)

Get notifications

Get recent triggered alert notifications.

Output parameters:

- `result` (string)

### `delete_alert` (~34 tokens)

Delete price alert

Delete an alert by ID.

    Args:
        alert_id: The alert UUID

Input parameters:

- `alert_id` (string, required)

Output parameters:

- `result` (string)

### `list_library_folders` (~19 tokens)

List library folders

List folders in the authenticated user's research library.

Output parameters:

- `result` (string)

### `create_library_folder` (~59 tokens)

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)

Input parameters:

- `name` (string, required)
- `parent_id`

Output parameters:

- `result` (string)

### `rename_library_folder` (~48 tokens)

Rename library folder

Rename a library folder.

    Args:
        folder_id: The folder UUID
        name: New folder name

Input parameters:

- `folder_id` (string, required)
- `name` (string, required)

Output parameters:

- `result` (string)

### `move_library_folder` (~66 tokens)

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)

Input parameters:

- `folder_id` (string, required)
- `parent_id`

Output parameters:

- `result` (string)

### `delete_library_folder` (~38 tokens)

Delete library folder

Delete a library folder and everything inside it.

    Args:
        folder_id: The folder UUID

Input parameters:

- `folder_id` (string, required)

Output parameters:

- `result` (string)

### `list_library_items` (~53 tokens)

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)

Input parameters:

- `folder_id`

Output parameters:

- `result` (string)

### `get_library_item` (~38 tokens)

Get library item

Get a library document's metadata and content.

    Args:
        item_id: The item UUID

Input parameters:

- `item_id` (string, required)

Output parameters:

- `result` (string)

### `create_library_item` (~69 tokens)

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)

Input parameters:

- `content` (string, required)
- `folder_id`
- `title` (string, required)

Output parameters:

- `result` (string)

### `update_library_item` (~73 tokens)

Update library item (versioned)

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)

Input parameters:

- `content`
- `item_id` (string, required)
- `title`

Output parameters:

- `result` (string)

### `move_library_item` (~65 tokens)

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)

Input parameters:

- `folder_id`
- `item_id` (string, required)

Output parameters:

- `result` (string)

### `delete_library_item` (~40 tokens)

Delete library item

Delete a library document and all of its stored versions.

    Args:
        item_id: The item UUID

Input parameters:

- `item_id` (string, required)

Output parameters:

- `result` (string)

### `list_library_item_versions` (~42 tokens)

List library item versions

List version history for a library document (newest first).

    Args:
        item_id: The item UUID

Input parameters:

- `item_id` (string, required)

Output parameters:

- `result` (string)

### `search_library` (~57 tokens)

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)

Input parameters:

- `limit` (integer)
- `query` (string, required)

Output parameters:

- `result` (string)

### `list_journal` (~52 tokens)

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.

Output parameters:

- `result` (string)

### `get_journal_entry` (~91 tokens)

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)

Input parameters:

- `entry_id` (string, required)

Output parameters:

- `result` (string)

### `submit_journal_draft` (~119 tokens)

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

Input parameters:

- `content` (string, required)
- `entry_date` (string, required)

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-manawa-manawa-terminal/mcp#diagnostics

## Score history

- 2026-08-12: 79
- 2026-08-11: 78
- 2026-08-10: 76
- 2026-08-09: 76
- 2026-08-08: 75
- 2026-08-07: 75
- 2026-08-06: 61

## Links

- Remote endpoint: https://mcp.manawa.app/mcp
- Website: https://www.manawa.app/
- Changelog RSS feed: https://verifymcp.io/servers/app-manawa-manawa-terminal/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-manawa-manawa-terminal/mcp.json
- HTML version of this page: https://verifymcp.io/servers/app-manawa-manawa-terminal/mcp
