npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vektor-mcp

v1.1.0

Published

Vektor MCP server — DeFi tools for AI agents on Sui

Readme

vektor-mcp

40 DeFi tools for AI agents on Sui blockchain.

Vektor MCP exposes the full Vektor financial OS as an MCP server. Connect it to Claude, GPT, or any MCP-compatible agent and get full DeFi capabilities — swap, lend, borrow, schedule, set conditions, track positions, explain transactions, and more — all with Guardian risk protection built in.

Installation

npx vektor-mcp

Or install globally:

npm install -g vektor-mcp

Setup

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "vektor": {
      "command": "npx",
      "args": ["vektor-mcp"],
      "env": {
        "SUI_PRIVATE_KEY": "suiprivkey1...",
        "ANTHROPIC_API_KEY": "sk-ant-...",
        "SUI_NETWORK": "mainnet"
      }
    }
  }
}

Private key modes

| Mode | How | |------|-----| | Mode 1 — Env var | Set SUI_PRIVATE_KEY in the MCP config env | | Mode 2 — Per-call | Pass privateKey in each tool call | | Mode 3 — Quote only | No key needed for vektor_get_quote, vektor_guardian_*, price tools |

Accepts suiprivkey1... (bech32), hex (0x...), or base64.


Tools (40 total)

Core Trading

vektor_get_quote

Get the best swap quote across all Sui liquidity sources (DeepBook, Cetus, Aftermath, Turbos, Hop, 7K, FlowX). Returns route, estimated output, Guardian score, and unsigned PTB hex. No wallet required.

Input:  { from: "SUI", to: "USDC", amount: 10 }
Output: { amountOut, amountOutHuman, priceImpact, route, guardianScore, guardianLevel, ptbHex, validUntil }

vektor_swap

Execute a swap with automatic Guardian protection. CRITICAL risk = always blocked. HIGH risk = blocked unless bypassGuardianWarnings: true.

Input:  { from: "SUI", to: "USDC", amount: 10 }
Output: { success, digest, actualAmountOut, guardianScore, guardianLevel, blocked?, blockReason? }

vektor_get_quote_from_protocol

Get a quote forced through a specific protocol: deepbook, cetus, aftermath, turbos, kriya, flowx, bluefin, hop.

Input:  { from: "SUI", to: "USDC", amount: 10, protocol: "cetus" }
Output: { protocol, routeUsed, amountOut, amountOutHuman, priceImpact, guardianScore }

vektor_batch_swap

Execute multiple swaps in sequence. Each has its own Guardian check.

Input:  { swaps: [{ from: "SUI", to: "USDC", amount: 5 }, ...] }
Output: { results: [{ digest, success, guardianScore }...], summary }

Guardian

vektor_guardian_simulate

Run Guardian on any Sui transaction or PTB hex. No wallet required.

Input:  { digest: "D8zRVk..." }  OR  { ptbHex: "a1b2..." }
Output: { score, level, flags, recommendation, safe }

vektor_guardian_score

Guardian risk score for a swap pair without executing.

Input:  { from: "SUI", to: "USDC", amount: 100 }
Output: { score, level, safe, recommendation, flags }

vektor_guardian_report

Full Guardian report — all 7 risk classes with severity and message.

Input:  { from: "SUI", to: "USDC", amount: 100 }
Output: { classes: [{ class, name, severity, title, message }...], passedChecks, warningChecks, failedChecks }

Guardian checks 7 classes: Slippage · Oracle Staleness · Pool Liquidity · Price Impact · Concentration · Protocol Safety · Gas Anomaly


Portfolio

vektor_get_portfolio

Input:  { walletAddress: "0x..." }
Output: { totalValueUsd, tokens: [{ symbol, balance, valueUsd }...], summary }

vektor_get_balance

Input:  { walletAddress: "0x...", token: "SUI" }
Output: { symbol, balance, valueUsd }

vektor_get_positions

Input:  { walletAddress: "0x..." }
Output: { openPositions, scheduledIntents, watchConditions, summary }

vektor_get_portfolio_value

Input:  { walletAddress: "0x..." }
Output: { totalValueUsd, breakdown: [{ asset, value, percentage }...] }

Payments

vektor_send

Input:  { to: "0x...", amount: 10, token: "USDC" }
Output: { success, digest, guardianScore }

vektor_batch_send

Input:  { recipients: [{ address: "0x...", amount: 10, token: "USDC" }, ...] }
Output: { success, digest, totalRecipients, totalSent, guardianScore }

vektor_create_payment_request

Input:  { amount: 50, token: "USDC", note?: "for dinner" }
Output: { requestId, link, expiresAt }

vektor_onboard

Input:  { amount: 5, token: "SUI" }
Output: { link, token, amount, expiresAt }

vektor_check_payment_request

Input:  { requestId: "uuid..." }
Output: { status, paidAt?, digest? }

NAVI Lending

vektor_navi_deposit

Input:  { token: "USDC", amount: 100 }
Output: { success, digest, currentHealthFactor }

vektor_navi_borrow

Blocked if health factor would drop below 1.5.

Input:  { token: "USDC", amount: 50 }
Output: { success, digest, newHealthFactor }

vektor_navi_repay

Input:  { token: "USDC", amount: 50 }
Output: { success, digest, newHealthFactor }

vektor_navi_withdraw

Input:  { token: "USDC", amount: 100 }
Output: { success, digest, newHealthFactor }

vektor_navi_get_health_factor

Input:  { walletAddress: "0x..." }
Output: { healthFactor, safe, riskLevel, totalCollateral, totalBorrowed, liquidationThreshold }

vektor_navi_get_rates

Input:  { token?: "USDC" }
Output: { rates: [{ token, depositApy, borrowApr, totalSupply, utilization }...] }

Scheduling & Conditions

vektor_schedule

Input:  { intent: "DCA 10 USDC into SUI every day for 30 days", walletAddress: "0x..." }
Output: { scheduleId, parsedIntent, frequency, nextExecution, totalExecutions }

vektor_list_schedules

Input:  { walletAddress: "0x..." }
Output: { schedules: [{ id, intent, frequency, nextExecution, executionsRemaining, totalExecuted }...] }

vektor_cancel_schedule

Input:  { scheduleId: "uuid...", walletAddress: "0x..." }
Output: { success, cancelledId }

vektor_set_condition

Polls Pyth every 60s and fires the intent when the price condition is met.

Input:  { condition: "when SUI drops below $3", intent: "swap all my SUI to USDC", walletAddress: "0x..." }
Output: { conditionId, parsedCondition, watchingAsset, triggerPrice, currentPrice }

vektor_list_conditions

Input:  { walletAddress: "0x..." }
Output: { conditions: [{ id, condition, asset, currentPrice, triggerPrice, distancePct }...] }

vektor_cancel_condition

Input:  { conditionId: "uuid...", walletAddress: "0x..." }
Output: { success, cancelledId }

Memecoin Trading

vektor_buy_memecoin

Input:  { token: "LOFI", amountUsdc: 20 }
Output: { success, digest, tokenReceived, entryPrice, guardianScore, guardianFlags }

vektor_sell_memecoin

Input:  { token: "LOFI", sellAll: true }
Output: { success, digest, usdcReceived, pnlUsd, pnlPct }

vektor_set_auto_exit

Input:  { token: "LOFI", profitTarget: 0.20, stopLoss: 0.15, walletAddress: "0x..." }
Output: { watcherId, profitTarget, stopLoss, entryPrice, currentPrice }

vektor_get_memecoin_positions

Input:  { walletAddress: "0x..." }
Output: { positions: [{ token, amount, entryPrice, currentPrice, pnlUsd, pnlPct }...] }

Information & Analysis

vektor_explain_transaction

Input:  { digest: "D8zRVk..." }
Output: { explanation, status, protocolsUsed, tokensIn, tokensOut, feePaid, gasCost }

vektor_get_token_price

Input:  { token: "SUI" }
Output: { symbol, priceUsd, change24h, publishTime, source }

vektor_get_pool_info

Input:  { tokenA: "SUI", tokenB: "USDC", protocol?: "cetus" }
Output: { pair, protocol, poolId, tvl, fee, volume24h }

vektor_get_protocol_info

Input:  { protocol: "cetus" }
Output: { name, audited, auditor, launchDate, tier, description, guardianTier }

vektor_analyze_wallet

Input:  { walletAddress: "0x..." }
Output: { summary, totalValueUsd, echoScore, strengths, weaknesses, recommendations, holdings }

Echo

vektor_echo_status

Input:  { walletAddress: "0x..." }
Output: { enabled, mode, activeRules, sessionKeyActive }

vektor_echo_score

Input:  { walletAddress: "0x..." }
Output: { total, diversification, yieldEfficiency, debtHealth, riskExposure, lastCalculated }

vektor_echo_get_rules

Input:  { walletAddress: "0x..." }
Output: { rules: [{ id, raw, parsed, active, createdAt, lastTriggered? }...] }

vektor_echo_add_rule

Input:  { rule: "Never let my health factor drop below 1.5", walletAddress: "0x..." }
Output: { ruleId, raw, parsedInterpretation, active }

vektor_echo_get_activity

Input:  { walletAddress: "0x...", limit?: 20 }
Output: { activities: [{ timestamp, description, action, guardianScore?, digest? }...] }

Environment Variables

| Variable | Description | |----------|-------------| | SUI_PRIVATE_KEY | Wallet key — bech32, hex, or base64 | | ANTHROPIC_API_KEY | Required for AI summaries and rule parsing | | SUI_NETWORK | mainnet (default) or testnet | | VEKTOR_MCP_DB | SQLite DB path (default: ./vektor-mcp.db) |


Guardian Risk Levels

Every execution tool runs Guardian automatically before signing:

| Score | Level | Action | |-------|-------|--------| | 80–100 | LOW | Proceeds | | 55–79 | MEDIUM | Proceeds with warning in response | | 30–54 | HIGH | Blocked — set bypassGuardianWarnings: true to override | | 0–29 | CRITICAL | Always blocked, cannot bypass |


License

MIT © Vektor Labs