FINOPTIMA
NPM · FINOPTIMA · SCANNED SEP 25
AI trading agent: multi-pool AMM, 4 strategies, marketplace, copy trading. 35 tools.
Available components
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. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency19
- Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 202 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability79
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 2777 tokens (~79/item across 35 items; 35 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_swap" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 36 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the FINOPTIMA MCP server?
FINOPTIMA runs locally as an npm package, launched with npx -y finoptima. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · finoptima
claude mcp add com-toutcreer-finoptima -- npx -y finoptima
{
"mcpServers": {
"com-toutcreer-finoptima": {
"command": "npx",
"args": [
"-y",
"finoptima"
]
}
}
} {
"servers": {
"com-toutcreer-finoptima": {
"command": "npx",
"args": [
"-y",
"finoptima"
]
}
}
} codex mcp add com-toutcreer-finoptima -- npx -y finoptima
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-toutcreer-finoptima": {
"type": "local",
"command": [
"npx",
"-y",
"finoptima"
],
"enabled": true
}
}
} openclaw mcp add com-toutcreer-finoptima --command npx --arg -y --arg finoptima
mcp_servers:
com-toutcreer-finoptima:
command: "npx"
args: ["-y", "finoptima"] {
"McpServers": {
"com-toutcreer-finoptima": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"finoptima"
]
}
}
} assistant mcp add com-toutcreer-finoptima -t stdio -c npx -a -y finoptima
{
"mcpServers": {
"com-toutcreer-finoptima": {
"command": "npx",
"args": [
"-y",
"finoptima"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 24 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Sept 26 −3
- Stability: pass → 0.80 functional
- 22 Sept 26 0
- Stability: 0.97 → pass security
- 21 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −3
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 25 Sept 2026 · Analysed npm/finoptima@1.3.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
activate_strategy ~45
Activate a draft or paused strategy. Creates default policy rules if none exist and takes a start-of-day PnL snapshot.
| Name | Type | Req | Description |
|---|---|---|---|
| strategy_id | string | yes | Strategy UUID to activate |
No output schema declared.
No examples provided.
add_liquidity ~77
Add liquidity to an AMM pool. You must provide both tokens in the correct ratio. Mints LP tokens in return.
| Name | Type | Req | Description |
|---|---|---|---|
| amount_a | number | yes | Amount of token A to deposit |
| amount_b | number | yes | Amount of token B to deposit |
| pool_id | string | yes | Pool UUID to add liquidity to |
No output schema declared.
No examples provided.
cancel_order ~32
Cancel an open trading order by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | The UUID of the order to cancel |
No output schema declared.
No examples provided.
create_intent ~149
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).
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | Trading action |
| params | object | yes | 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 |
No output schema declared.
No examples provided.
create_strategy ~168
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).
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | Optional description |
| mode | string | – | Execution mode |
| name | string | yes | Strategy name (e.g. "Daily BTC DCA") |
| parameters | object | yes | 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 | yes | Strategy type |
No output schema declared.
No examples provided.
execute_swap ~83
Execute an AMM swap. Swaps tokens through a liquidity pool with 0.3% fee. Returns the executed swap details.
| Name | Type | Req | Description |
|---|---|---|---|
| amount_in | number | yes | Amount of input token |
| min_amount_out | number | – | Minimum acceptable output (slippage protection) |
| token_in | string | yes | Input token |
| token_out | string | yes | Output token |
No output schema declared.
No examples provided.
follow_strategy ~96
Start copy trading a public strategy. Creates a shadow strategy that mirrors the provider's trades with optional scaling. Requires pilot+ plan.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | The UUID of the public strategy to follow |
No output schema declared.
No examples provided.
get_balance ~39
Get balance for a specific chain (ECO, BTC, or ETH).
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name: ECO, BTC, or ETH |
No output schema declared.
No examples provided.
get_balances ~33
Get all wallet balances for the user (ECO, BTC, ETH). Returns chain, balance, and formatted values.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_candles ~90
Get OHLCV candlestick data for technical analysis. Intervals: 1m, 5m, 15m, 1h, 4h, 1d, 1w.
| Name | Type | Req | Description |
|---|---|---|---|
| interval | string | – | Candle interval |
| limit | number | – | Number of candles (default 100, max 500) |
| pair_id | string | yes | Trading pair ID |
No output schema declared.
No examples provided.
get_leaderboard ~49
Get top performing public strategies. Returns strategy name, type, total return, max drawdown, follower count, and provider name.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 50) |
No output schema declared.
No examples provided.
get_lp_positions ~27
Get all LP (Liquidity Provider) positions for the user, showing share of each pool.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_my_orders ~38
Get all open orders for the user, optionally filtered by status.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by status: open, filled, cancelled |
No output schema declared.
No examples provided.
get_orderbook ~42
Get the order book (bids and asks) for a trading pair.
| Name | Type | Req | Description |
|---|---|---|---|
| pair_id | string | yes | Trading pair ID (e.g., ECO-BTC) |
No output schema declared.
No examples provided.
get_pool_details ~41
Get detailed information about a specific liquidity pool (reserves, constant product k, fee rate).
| Name | Type | Req | Description |
|---|---|---|---|
| pool_id | string | yes | The UUID of the pool |
No output schema declared.
No examples provided.
get_pools ~25
List all AMM liquidity pools with their reserves, fees, and TVL.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_portfolio ~23
Get complete portfolio view: all wallets plus LP positions in liquidity pools.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_prices ~21
Get current BTC and ETH prices in EUR from CoinGecko.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_strategy ~40
Get detailed info about a trading strategy: parameters, rules, latest PnL snapshot, and recent intents.
| Name | Type | Req | Description |
|---|---|---|---|
| strategy_id | string | yes | Strategy UUID |
No output schema declared.
No examples provided.
get_strategy_performance ~54
Get performance metrics for a trading strategy: total return, max drawdown, vs HODL benchmark, fees paid/earned, and PnL snapshots time-series.
| Name | Type | Req | Description |
|---|---|---|---|
| strategy_id | string | yes | Strategy UUID |
No output schema declared.
No examples provided.
get_swap_quote ~79
Get a swap quote without executing. Shows expected output, price impact, and fees (0.3%).
| Name | Type | Req | Description |
|---|---|---|---|
| amount_in | number | yes | Amount of input token to swap |
| token_in | string | yes | Input token (e.g., ECO, BTC) |
| token_out | string | yes | Output token (e.g., BTC, ECO) |
No output schema declared.
No examples provided.
get_templates ~32
List all active strategy templates in the marketplace. Returns template name, type, parameters, return, subscribers, and provider.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_ticker ~47
Get 24h trading statistics for a pair (price, volume, high, low, change).
| Name | Type | Req | Description |
|---|---|---|---|
| pair_id | string | yes | Trading pair ID (e.g., ECO-BTC) |
No output schema declared.
No examples provided.
get_trade_history ~32
Get the trade execution history for the user.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of trades (default 50) |
No output schema declared.
No examples provided.
get_trading_pairs ~19
List all active trading pairs on the exchange.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_transaction_history ~54
Get transaction history (sends, receives, deposits, withdrawals).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of transactions (default 50) |
| type | string | – | Filter by type: send, receive, deposit, withdrawal |
No output schema declared.
No examples provided.
list_intents ~63
List trading intents with optional filters. Shows status, canonical display, policy result, and execution result.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 50) |
| status | string | – | Filter by status |
| strategy_id | string | – | Filter by strategy |
No output schema declared.
No examples provided.
list_strategies ~55
List all trading strategies for the user. Returns strategy name, type (lp_yield/dca/btc_hedge), status, mode, and PnL summary.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | – | Filter by status |
No output schema declared.
No examples provided.
login ~87
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.
| Name | Type | Req | Description |
|---|---|---|---|
| phone_number | string | yes | User phone number in international format (e.g. +33612345678) |
No output schema declared.
No examples provided.
pause_strategy ~43
Pause an active strategy. Cancels all pending/awaiting/approved intents. Can be resumed later with activate.
| Name | Type | Req | Description |
|---|---|---|---|
| strategy_id | string | yes | Strategy UUID to pause |
No output schema declared.
No examples provided.
place_order ~91
Place a trading order (limit or market, buy or sell). Returns the created order.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | Amount to trade (in base currency) |
| pair_id | string | yes | Trading pair ID (e.g., ECO-BTC) |
| price | number | – | Price per unit (required for limit orders) |
| side | string | yes | Order side |
| type | string | yes | Order type |
No output schema declared.
No examples provided.
remove_liquidity ~52
Remove liquidity from an AMM pool by burning LP tokens. Returns both tokens proportionally.
| Name | Type | Req | Description |
|---|---|---|---|
| lp_amount | number | yes | Amount of LP tokens to burn |
| pool_id | string | yes | Pool UUID |
No output schema declared.
No examples provided.
send_funds ~92
Send funds to another user (by user ID or phone number). Internal transfer only — no blockchain fees.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | Amount to send (in base units: cents for ECO, satoshis for BTC) |
| chain | string | yes | Token to send |
| note | string | – | Optional note for the transfer |
| to | string | yes | Recipient user ID (UUID) or phone number |
No output schema declared.
No examples provided.
subscribe_template ~48
Subscribe to a strategy template. Clones the template config into a new strategy for the user. Requires pilot+ plan.
| Name | Type | Req | Description |
|---|---|---|---|
| template_id | string | yes | The UUID of the template to subscribe to |
No output schema declared.
No examples provided.
unfollow_strategy ~43
Stop copy trading a strategy. Pauses the shadow strategy and removes the copy trading link.
| Name | Type | Req | Description |
|---|---|---|---|
| strategy_id | string | yes | The UUID of the strategy to unfollow |
No output schema declared.
No examples provided.
What is the FINOPTIMA MCP server?
FINOPTIMA is an MCP server listed in the public MCP registry as com.toutcreer/finoptima. AI trading agent: multi-pool AMM, 4 strategies, marketplace, copy trading. 35 tools. This page covers its npm package (finoptima).
Is the FINOPTIMA MCP server safe to use?
FINOPTIMA scores 76 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 25 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the FINOPTIMA MCP server expose?
FINOPTIMA exposes 35 tools: login, get_balances, get_balance, get_portfolio, get_prices, and 30 more. Their descriptions and schemas cost roughly 2,009 tokens of context every time the server is loaded.
Is the FINOPTIMA MCP server still maintained?
FINOPTIMA is still listed as active in the MCP registry. We last reached this channel on 25 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the FINOPTIMA MCP server under?
FINOPTIMA declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.