Rift Finance MCP Server (Rift-FI/rift-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 80 tools. No publisher has claimed this listing.
MCP server that gives AI assistants full access to the Rift Finance platform. Users can send crypto, check balances, offramp to M-Pesa, bridge across chains, and more — just by chatting.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
Rift-FI
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
rift_guideSTART HERE. Get step-by-step instructions for any Rift operation. Call this FIRST when a user asks to do something and you're not sure of the exact flow. Covers: send crypto, withdraw to M-Pesa, buy crypto, bridge, check balance, login, KYC, invoices, WalletConnect, auto-swap, and more.
rift_search_docsSearch Rift Finance SDK/API documentation. Returns method signatures, code examples, and auth requirements.
rift_get_api_endpointsGet REST API endpoint details for a service group. Returns methods, paths, auth requirements, and request body schemas.
rift_get_supported_chainsGet all supported blockchains (with chain IDs), tokens, and fiat currencies with payment methods.
rift_widget_snippetReturn a ready-to-paste embed snippet for the Rift sign-in widget. Use this when a developer asks 'how do I add Rift to my site/app'. The output is a fully runnable code block keyed by their framework (html/react/nextjs). Each snippet uses the project's actual API key.
rift_get_widget_configFetch the widget configuration for the currently-set project: display name, branding (colors / logo / font), and allowed origins. Useful for diagnosing why the widget shows defaults instead of project branding. Requires rift_set_api_key first.
rift_docs_urlReturn the URL of the public Rift docs portal. Use this to point a developer at integration walkthroughs (client-side, server SDK, HTTP API, transaction signing) without requiring them to log in to the dashboard.
rift_set_api_keySet the Rift project API key. MUST be called before any other live tool if no key is configured. The key starts with 'sk_'. Ask the user for it if you don't have it.
rift_set_api_urlOverride the Rift API URL. Only needed if using a custom deployment (not the default).
rift_statusCheck current connection and auth status. Call this if you're unsure whether the user is logged in or the API key is set.
rift_signupCreate a new Rift user account. After signup, the user needs to login separately via rift_login.
rift_send_otpSend a one-time password to user's email or phone. Call this BEFORE: (1) rift_login — to authenticate, (2) rift_send_crypto — to authorize a transaction, (3) rift_offramp — to authorize a withdrawal. The user receives the code via SMS or email and must tell you the code.
rift_verify_otpVerify an OTP code WITHOUT logging in. Rarely needed — for login, use rift_login directly (it verifies OTP internally). For transactions/offramp, pass otpCode directly to rift_send_crypto/rift_offramp. Only use this for standalone OTP checks.
rift_loginLogin to Rift. Stores the session so all authenticated tools work. Three methods: (1) email + otpCode — call rift_send_otp first, (2) phoneNumber + otpCode — call rift_send_otp first, (3) externalId + password — no OTP needed. After login, you do NOT need to login again for subsequent tool calls in …
rift_login_googleSign in (or sign up on first use) with a Google ID token. The frontend obtains the idToken from Google's identity flow — for example, the `credential` from Google One-Tap, or an ID token from `useGoogleLogin({ flow: 'implicit' })` exchanged via Google's OAuth2 endpoint. NOT something the agent can p…
rift_login_appleSign in (or sign up on first use) with an Apple identity token. The frontend obtains the idToken from 'Sign in with Apple' — `authorization.id_token` from `AppleID.auth.signIn()` on web, the identity token from `ASAuthorizationAppleIDCredential` on iOS, or expo-apple-authentication on RN. NOT someth…
rift_logoutLogout and clear the session. After this, user must login again to use authenticated tools.
rift_get_userGet the logged-in user's profile. Returns: email, phone, displayName, address (smart wallet), autoSwapEnabled, autoSwapTargetChain, and more. Requires login.
rift_update_userUpdate user profile. Can change display name, email, notification email, and auto-swap settings. Requires login.
rift_delete_userPERMANENTLY delete user account and all data. DESTRUCTIVE — confirm with user TWICE before calling.
rift_create_recoverySet up account recovery methods (email and/or phone). User can later reset their password via these methods. Requires login + OTP.
rift_get_recovery_optionsGet available recovery options for a user. Shows masked email/phone. Does NOT require login — for users who are locked out.
rift_request_password_resetStart password reset flow. Sends OTP to recovery email or phone. Does NOT require login.
rift_reset_passwordComplete password reset with OTP from recovery method. Does NOT require login.
rift_update_recoveryUpdate existing recovery methods. Requires login + externalId/password for verification (verifyOtp middleware).
rift_add_recovery_methodAdd a new recovery method (email or phone). Requires login + externalId/password for verification.
rift_remove_recovery_methodRemove a recovery method. Requires login + externalId/password for verification.
rift_update_recovery_methodUpdate the value of an existing recovery method. Requires login + externalId/password.
rift_get_my_recovery_methodsGet the current user's recovery methods. Requires login + externalId/password for verification.
rift_delete_all_recoveryDelete ALL recovery methods. DESTRUCTIVE — confirm with user. Requires login + externalId/password.
rift_get_balanceGet wallet balance. Returns crypto balances (USDC, USDT, ETH, etc), NOT fiat amounts. Call with no params for all balances across all chains. To display in local fiat: call rift_preview_exchange_rate with type='offramp', then multiply USDC balance × buying_rate. Requires login.
rift_send_cryptoSend crypto to an address. REAL TRANSACTION — always confirm with user first. Requires OTP or password: for email/phone users, call rift_send_otp FIRST to get a fresh OTP. For externalId users, ask for password. Requires login.
rift_get_transaction_historyGet on-chain transaction history (sends/receives). For offramp order history, use rift_get_offramp_orders. For onramp order history, use rift_get_onramp_orders. Requires login.
rift_get_transaction_feeCalculate the gas/network fee for sending crypto (rift_send_crypto). This is the on-chain transaction fee, NOT the offramp/exchange fee. For offramp fees, use rift_preview_exchange_rate with amount and type='offramp'. Requires login.
rift_preview_exchange_ratePreview exchange rate. IMPORTANT: offramp and onramp rates are DIFFERENT — always set type correctly. Rate fields explained: - buying_rate = OFFRAMP/withdrawal rate — fiat per USDC when cashing out. Multiply USDC × buying_rate to get fiat the user receives. - selling_rate = ONRAMP/deposit rate — fi…
rift_get_payment_methodsGet supported banks and mobile money providers for a currency. Use the bankCode values from here in rift_offramp. E.g. for Kenya: MPESA for M-Pesa. Requires login.
rift_offrampWithdraw crypto to fiat. REAL PAYMENT — confirm with user. Requires: login + merchant approval + KYC (>$20) + OTP/password. WARNING: This call can take 30-60+ seconds (on-chain tx + fiat settlement). A timeout does NOT mean failure — always check rift_poll_offramp_status with the transactionCode to…
rift_offramp_create_orderDO NOT USE — use rift_offramp instead. This is a legacy endpoint that does the same thing. REAL PAYMENT — confirm with user.
rift_send_payment_linkSend an existing payment link URL to someone via SMS and/or email. This does NOT create a payment — it just delivers an existing URL. You need to have a payment link URL already (e.g. from an invoice). At least one of recipientPhone or recipientEmail is required. Requires login.
rift_get_withdrawal_feeDO NOT USE THIS to show users their withdrawal fee — it only returns the raw KES buy/sell spread, not the actual fee on a withdrawal. Instead, use rift_preview_exchange_rate with an amount and type='offramp' — that returns feeBreakdown with the real fee, feePercentage, userReceivesFiat, and totalUsd…
rift_poll_offramp_statusCheck the status of an offramp order. Call after rift_offramp. Status: PENDING → COMPLETED or FAILED. Requires login.
rift_get_offramp_ordersGet all past offramp orders for the user. Requires login.
rift_buy_cryptoBuy crypto with mobile money (M-Pesa, etc). REAL PAYMENT — confirm with user. The 'amount' here is in LOCAL FIAT currency (e.g. 1000 = 1000 KES), NOT in USDC. Use rift_preview_exchange_rate with type='onramp' first to show how much USDC they'll get. Requires: login + merchant approval + KYC (for >$2…
rift_get_onramp_statusCheck status of a crypto purchase. Requires login.
rift_get_onramp_ordersGet onramp purchase history. Requires login.
rift_get_bridge_routesGet available cross-chain bridge routes and supported tokens. No auth required.
rift_bridge_quoteGet fee and output amount for a bridge transfer. Call before rift_bridge_execute to show user what they'll receive. No auth required.
rift_bridge_executeExecute cross-chain bridge. MOVES REAL FUNDS — confirm with user. Does NOT require OTP. Tokens arrive in 1-5 minutes. Call rift_bridge_quote first to show fees. Requires login.
rift_swapSwap one token for another on a single chain via the user's smart wallet. SAME-CHAIN ONLY — for cross-chain use rift_bridge_execute. REAL TX — confirm with user. No OTP required. Use 'flow: gasless' (recommended) for sponsored gas via UserOperation; use 'normal' to pay gas yourself. For known token…
rift_kyc_get_tokenStart KYC verification — returns a verification URL the user must visit. No auth required.
rift_kyc_check_user_existsCheck if a user exists and their KYC status. No auth required.
rift_kyc_statusCheck KYC verification status. Returns: verified, pending, failed, or provisional. No auth required.
rift_kyc_verifyVerify a specific KYC job by ID. Requires login.
rift_kyc_is_verifiedCheck if the currently logged-in user is KYC verified. Requires login.
rift_kyc_job_statusPoll the status of a KYC verification job. Requires login.
rift_wc_pairPair with a DApp via WalletConnect. User provides a wc: URI (usually from a QR code). Requires login.
rift_wc_get_requestsGet pending transaction requests from connected DApps. Show these to the user for approval. Requires login.
rift_wc_approveApprove a pending DApp request. Always show the request details to user first. Requires login.
rift_wc_rejectReject a pending DApp request. Requires login.
rift_wc_sessionsList active WalletConnect sessions. Requires login.
rift_wc_disconnectDisconnect from a DApp session. Requires login.
rift_create_invoiceCreate a payment invoice and get a payment URL. No OTP required. KYC required for >$20. Requires login.
rift_get_invoicesList invoices. Filter by status, date range, and sort order. Requires login.
rift_merchant_statusCheck if the user's account has merchant (KYB) approval. Required for offramp/onramp operations. Requires login.
rift_notifications_registerRegister a device for push notifications. Requires login.
rift_notifications_sendSend a push notification to all of the user's registered devices. Requires login.
rift_notifications_subscriptionsGet or delete all notification subscriptions. Requires login.
rift_get_wallet_instanceGet wallet address and details for a specific chain. Requires login.
rift_sign_transactionSign a raw blockchain transaction WITHOUT broadcasting it (low-level). This is NOT for sending tokens — use rift_send_crypto for that. Returns signed tx data for manual submission. Requires login.
rift_send_transactionExecute a call through the user's SMART WALLET as an ERC-4337 UserOperation. For advanced use (contract calls, native transfers) — for simple token sends use rift_send_crypto instead. REAL TX — confirm with user. Semantics an AI MUST know: - The on-chain sender is the user's SMART WALLET, NOT their…
rift_sign_messageSign an arbitrary message with the user's private key. Used for DApp authentication, off-chain signatures, etc. Requires login.
rift_get_tokensGet the list of supported token TYPES (metadata: name, contract address, chain). This is NOT balances — use rift_get_balance for balances. No auth required.
rift_get_user_tokensGet the list of token TYPES the user has interacted with (metadata, not balances). For actual balances, use rift_get_balance. Requires login.
rift_get_chainsGet supported chains or details for a specific chain. No auth required.
rift_suspend_userSuspend a user from the platform. Admin operation. Requires API key.
rift_unsuspend_userUnsuspend a previously suspended user. Admin operation.
rift_get_suspended_usersList all suspended users. Admin operation.
rift_get_user_statusCheck if a specific user is suspended. Admin operation.
rift_get_depositsGet onchain deposit history for the user (queried live from The Graph). Shows inbound transfers to the user's smart wallets with USDC amounts, KES conversion, sender address, tx hash, and timestamp. This is NOT a balance check — use rift_get_balance for current balances. Requires login.
rift_get_deposit_statsGet deposit statistics: totalDeposits (count), totalUsdcAmount, totalKesAmount, plus the full deposits list. Summary of all onchain deposits to the user's wallets. Requires login.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
Anthropic's MCP TypeScript SDK has a ReDoS vulnerability
Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default
RIFT_API_KEY"": "sk_your_project_api_key"RIFT_API_URL"": "https://rift-sdk-wrapper-j9qe.onrender.com",RIFT_BACKEND_URLTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
80/80 tools missing one or more hints — rift_guide (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); rift_search_docs (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); rift_get_api_endpoints (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +77 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
62/80 tool handlers declare input schemas (78%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool handlers catch errors
71/80 tool handlers wrap calls in try/catch (89%)
Wrap each tool handler body in try/catch and return a structured error response.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tests exist
No test files found
Add tests that exercise each declared tool.
Production dependencies are patched
0 critical, 3 high severity in production deps — @modelcontextprotocol/sdk@1.12.1 (high), @modelcontextprotocol/sdk@1.12.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/rift-fi/rift-mcp-server)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check