# FINOPTIMA (npm · finoptima)

AI trading agent: multi-pool AMM, 4 strategies, marketplace, copy trading. 35 tools.

- Trust score: 64/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `finoptima`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-toutcreer-finoptima/finoptima.md), [page](https://verifymcp.io/servers/com-toutcreer-finoptima/finoptima)

## Channel facts

- Registry: `npm`
- Package: `finoptima`
- Version: `1.3.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL returned HTTP 404.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 149 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 77/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 2777 tokens (~79/item across 35 items; 35 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add com-toutcreer-finoptima -- npx -y finoptima
```

### Codex

```bash
codex mcp add com-toutcreer-finoptima -- npx -y finoptima
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-toutcreer-finoptima": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "finoptima"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-toutcreer-finoptima --command npx --arg -y --arg finoptima
```

### Hermes

```yaml
mcp_servers:
  com-toutcreer-finoptima:
    command: "npx"
    args: ["-y", "finoptima"]
```

### Other

```json
{
  "mcpServers": {
    "com-toutcreer-finoptima": {
      "command": "npx",
      "args": [
        "-y",
        "finoptima"
      ]
    }
  }
}
```

## 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-03 (score 64, +1)

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

### 2026-08-02 (score 63, +63)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 0, −16)

- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-31 (score 16, −24)

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

### 2026-07-27 (score 40)

First indexed and scored.

## MCP tools (35)

### `login` (~87 tokens)

Login to EcoChain via EcoAuth. Ask the user for their phone number first (e.g. +33612345678), then call this tool. The user will receive a push notification on their EcoAuth app and must approve it. This must be called before any other tool.

Input parameters:

- `phone_number` (string, required): User phone number in international format (e.g. +33612345678)

### `get_balances` (~33 tokens)

Get all wallet balances for the user (ECO, BTC, ETH). Returns chain, balance, and formatted values.

### `get_balance` (~39 tokens)

Get balance for a specific chain (ECO, BTC, or ETH).

Input parameters:

- `chain` (string, required): Chain name: ECO, BTC, or ETH

### `get_portfolio` (~23 tokens)

Get complete portfolio view: all wallets plus LP positions in liquidity pools.

### `get_prices` (~21 tokens)

Get current BTC and ETH prices in EUR from CoinGecko.

### `get_pools` (~25 tokens)

List all AMM liquidity pools with their reserves, fees, and TVL.

### `get_pool_details` (~41 tokens)

Get detailed information about a specific liquidity pool (reserves, constant product k, fee rate).

Input parameters:

- `pool_id` (string, required): The UUID of the pool

### `get_lp_positions` (~27 tokens)

Get all LP (Liquidity Provider) positions for the user, showing share of each pool.

### `get_orderbook` (~42 tokens)

Get the order book (bids and asks) for a trading pair.

Input parameters:

- `pair_id` (string, required): Trading pair ID (e.g., ECO-BTC)

### `get_ticker` (~47 tokens)

Get 24h trading statistics for a pair (price, volume, high, low, change).

Input parameters:

- `pair_id` (string, required): Trading pair ID (e.g., ECO-BTC)

### `get_candles` (~90 tokens)

Get OHLCV candlestick data for technical analysis. Intervals: 1m, 5m, 15m, 1h, 4h, 1d, 1w.

Input parameters:

- `interval` (string): Candle interval
- `limit` (number): Number of candles (default 100, max 500)
- `pair_id` (string, required): Trading pair ID

### `get_trading_pairs` (~19 tokens)

List all active trading pairs on the exchange.

### `get_my_orders` (~38 tokens)

Get all open orders for the user, optionally filtered by status.

Input parameters:

- `status` (string): Filter by status: open, filled, cancelled

### `get_trade_history` (~32 tokens)

Get the trade execution history for the user.

Input parameters:

- `limit` (number): Number of trades (default 50)

### `get_transaction_history` (~54 tokens)

Get transaction history (sends, receives, deposits, withdrawals).

Input parameters:

- `limit` (number): Number of transactions (default 50)
- `type` (string): Filter by type: send, receive, deposit, withdrawal

### `place_order` (~91 tokens)

Place a trading order (limit or market, buy or sell). Returns the created order.

Input parameters:

- `amount` (number, required): Amount to trade (in base currency)
- `pair_id` (string, required): Trading pair ID (e.g., ECO-BTC)
- `price` (number): Price per unit (required for limit orders)
- `side` (string, required): Order side
- `type` (string, required): Order type

### `cancel_order` (~32 tokens)

Cancel an open trading order by its ID.

Input parameters:

- `order_id` (string, required): The UUID of the order to cancel

### `get_swap_quote` (~79 tokens)

Get a swap quote without executing. Shows expected output, price impact, and fees (0.3%).

Input parameters:

- `amount_in` (number, required): Amount of input token to swap
- `token_in` (string, required): Input token (e.g., ECO, BTC)
- `token_out` (string, required): Output token (e.g., BTC, ECO)

### `execute_swap` (~83 tokens)

Execute an AMM swap. Swaps tokens through a liquidity pool with 0.3% fee. Returns the executed swap details.

Input parameters:

- `amount_in` (number, required): Amount of input token
- `min_amount_out` (number): Minimum acceptable output (slippage protection)
- `token_in` (string, required): Input token
- `token_out` (string, required): Output token

### `add_liquidity` (~77 tokens)

Add liquidity to an AMM pool. You must provide both tokens in the correct ratio. Mints LP tokens in return.

Input parameters:

- `amount_a` (number, required): Amount of token A to deposit
- `amount_b` (number, required): Amount of token B to deposit
- `pool_id` (string, required): Pool UUID to add liquidity to

### `remove_liquidity` (~52 tokens)

Remove liquidity from an AMM pool by burning LP tokens. Returns both tokens proportionally.

Input parameters:

- `lp_amount` (number, required): Amount of LP tokens to burn
- `pool_id` (string, required): Pool UUID

### `send_funds` (~92 tokens)

Send funds to another user (by user ID or phone number). Internal transfer only — no blockchain fees.

Input parameters:

- `amount` (number, required): Amount to send (in base units: cents for ECO, satoshis for BTC)
- `chain` (string, required): Token to send
- `note` (string): Optional note for the transfer
- `to` (string, required): Recipient user ID (UUID) or phone number

### `list_strategies` (~55 tokens)

List all trading strategies for the user. Returns strategy name, type (lp_yield/dca/btc_hedge), status, mode, and PnL summary.

Input parameters:

- `status` (string): Filter by status

### `get_strategy` (~40 tokens)

Get detailed info about a trading strategy: parameters, rules, latest PnL snapshot, and recent intents.

Input parameters:

- `strategy_id` (string, required): Strategy UUID

### `create_strategy` (~168 tokens)

Create a new trading strategy (starts as draft). Types: lp_yield (LP optimization), dca (Dollar Cost Average), btc_hedge (BTC downside protection). Mode: auto (execute automatically) or watch (manual approval for all intents).

Input parameters:

- `description` (string): Optional description
- `mode` (string): Execution mode
- `name` (string, required): Strategy name (e.g. "Daily BTC DCA")
- `parameters` (object, required): Strategy parameters. DCA: {token_to_buy, spend_token, amount_per_interval, interval_hours, total_budget}. BTC Hedge: {btc_drop_threshold_percent, conversion_step_percent, cooldown_hours}. LP Yield: {…
- `type` (string, required): Strategy type

### `activate_strategy` (~45 tokens)

Activate a draft or paused strategy. Creates default policy rules if none exist and takes a start-of-day PnL snapshot.

Input parameters:

- `strategy_id` (string, required): Strategy UUID to activate

### `pause_strategy` (~43 tokens)

Pause an active strategy. Cancels all pending/awaiting/approved intents. Can be resumed later with activate.

Input parameters:

- `strategy_id` (string, required): Strategy UUID to pause

### `create_intent` (~149 tokens)

Create a trading intent with policy validation. Returns canonical_display (human-readable JSON) and intent_hash (SHA256) for approval verification. Auto-approved if amount < 0.01 BTC, otherwise awaits manual approval (30min TTL).

Input parameters:

- `action` (string, required): Trading action
- `params` (object, required): Action parameters. Swap: {token_in, token_out, amount_in, max_slippage_bps}. Liquidity: {pool_id, amount_a, amount_b}. Order: {pair_id, side, type, amount, price}.
- `reasoning` (string): Why this trade (shown to user for approval)
- `strategy_id` (string): Optional: link to a strategy

### `list_intents` (~63 tokens)

List trading intents with optional filters. Shows status, canonical display, policy result, and execution result.

Input parameters:

- `limit` (number): Max results (default 50)
- `status` (string): Filter by status
- `strategy_id` (string): Filter by strategy

### `get_strategy_performance` (~54 tokens)

Get performance metrics for a trading strategy: total return, max drawdown, vs HODL benchmark, fees paid/earned, and PnL snapshots time-series.

Input parameters:

- `strategy_id` (string, required): Strategy UUID

### `get_leaderboard` (~49 tokens)

Get top performing public strategies. Returns strategy name, type, total return, max drawdown, follower count, and provider name.

Input parameters:

- `limit` (number): Max results (default 50)

### `get_templates` (~32 tokens)

List all active strategy templates in the marketplace. Returns template name, type, parameters, return, subscribers, and provider.

### `subscribe_template` (~48 tokens)

Subscribe to a strategy template. Clones the template config into a new strategy for the user. Requires pilot+ plan.

Input parameters:

- `template_id` (string, required): The UUID of the template to subscribe to

### `follow_strategy` (~96 tokens)

Start copy trading a public strategy. Creates a shadow strategy that mirrors the provider's trades with optional scaling. Requires pilot+ plan.

Input parameters:

- `max_trade_btc` (number): Maximum trade size in BTC (default 0.01)
- `scale_factor` (number): Trade size multiplier (0.1-2.0, default 1.0)
- `strategy_id` (string, required): The UUID of the public strategy to follow

### `unfollow_strategy` (~43 tokens)

Stop copy trading a strategy. Pauses the shadow strategy and removes the copy trading link.

Input parameters:

- `strategy_id` (string, required): The UUID of the strategy to unfollow

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-toutcreer-finoptima/finoptima#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 63
- 2026-08-01: 0
- 2026-07-31: 16
- 2026-07-30: 40
- 2026-07-28: 40
- 2026-07-27: 40

## Links

- npm package: https://www.npmjs.com/package/finoptima
- Socket report: https://socket.dev/npm/package/finoptima
- Changelog RSS feed: https://verifymcp.io/servers/com-toutcreer-finoptima/finoptima/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-toutcreer-finoptima/finoptima/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-toutcreer-finoptima/finoptima
