dexter-mcp (Dexter-DAO/dexter-mcp) is an MCP server listed on the M8ven Trust Index. It scores 69 out of 100, grade C. It declares 145 tools. No publisher has claimed this listing.
Source for the hosted Dexter and OpenDexter MCP runtimes, including OAuth-bound Wallet, x402, and governed asset tools.
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
Dexter-DAO
Source: github_repo_search
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.
list_bundlesBrowse and search available tool bundles in the Dexter marketplace. Filter by category, search term, or curator.
get_bundleGet detailed information about a specific bundle including all included tools, pricing, and curator info.
get_my_bundlesList all bundles you have created as a curator, including drafts and stats.
create_bundleCreate a new tool bundle. Starts as draft. Add tools, then publish when ready.
update_bundleUpdate bundle name, description, pricing, or other details. Cannot change price after purchases.
publish_bundlePublish a draft bundle to make it available for purchase. Requires at least one tool.
add_bundle_itemAdd a marketplace tool to your bundle. The tool must be a valid x402 resource.
remove_bundle_itemRemove a tool from your bundle.
check_bundle_accessCheck your access status for a purchased bundle. Shows remaining uses and tool usage.
get_my_purchasesList all bundles you have purchased and their access status.
codex_startBegin a new Codex conversation. Default sandbox is read-only; superadmins may set sandbox="danger-full-access" when full access is required.
codex_replySend a follow-up prompt to an existing Codex conversation. Sandbox defaults to read-only unless a superadmin explicitly requests danger-full-access.
codex_execRun Codex exec with optional JSON schema. Sandbox is read-only by default; superadmins can request danger-full-access when they need unrestricted execution.
searchFind up-to-date information from across the web.
fetchRetrieve and summarize a web page by URL.
hyperliquid_marketsReturns the current list of tradable Hyperliquid perp symbols.
hyperliquid_opt_inProvision a Hyperliquid agent wallet for a Dexter-managed wallet so the user can trade perps.
hyperliquid_fundBridge SOL -> USDC (Arbitrum) -> Hyperliquid Master Address to fund the trading agent.
hyperliquid_bridge_depositDeposit funds from Arbitrum L2 (Master Wallet) into Hyperliquid L1 bridge contract.
hyperliquid_perp_tradeSubmit a Hyperliquid perpetual order through a Dexter-managed wallet.
check_identityCheck if the authenticated user has an ERC-8004 identity on Base and/or Solana. Returns status for both chains.
get_my_identityGet the full ERC-8004 identity details for the authenticated user, optionally filtered by chain.
mint_identityMint a new ERC-8004 identity NFT on Base or Solana. This creates your on-chain agent identity for the Dexter Trust Layer. Gas fees are sponsored by Dexter.
get_agent_reputationGet the ERC-8004 reputation summary for an agent by their registry address and agent ID.
get_reputation_leaderboardGet the top agents ranked by ERC-8004 reputation score.
submit_feedbackSubmit ERC-8004 reputation feedback for an agent. Requires authentication and a Dexter wallet.
get_identity_statsGet overall statistics for ERC-8004 identities and reputation on Dexter.
markets_fetch_ohlcvFetch Birdeye OHLCV candles for a Solana token mint over a specified window.
onchain_activity_overviewOn-chain swap analytics. REQUIRED: scope="token" needs mint; scope="wallet" needs BOTH mint AND wallet. Always resolve the mint address first.
onchain_entity_insightOn-chain entity deep dive. REQUIRED: scope="token" or "wallet" needs mint; scope="wallet" also needs wallet; scope="trade" needs signature.
pokedexter_list_challengesList all open wagered Pokémon battle challenges you can accept. Shows challenger, wager amount ($1-$25), format, and expiration time.
pokedexter_get_battle_stateGet YOUR battle state including your actual moves, team, and available actions. Use this before each turn to see what you can do.
pokedexter_make_moveSubmit your battle action. Use "move 1", "move 2", "switch 3", etc. Call get_battle_state first to see available moves.
pokedexter_get_active_wagerGet details about your currently active wagered battle, including escrow status, opponent, and battle room ID.
pokedexter_get_wager_statusCheck the status of a specific wager by ID. Use this to verify escrow deposits, see settlement status, or check if a battle is complete.
pokedexter_create_challengeCreate an open wagered Pokémon battle challenge. Set your wager ($1-$25) and format. Other players can accept. Winner takes 100% of the pot (0% house cut).
pokedexter_accept_challengeAccept an open wagered battle challenge. Returns escrow deposit instructions and battle room ID.
pokedexter_join_queueJoin the quick match queue for instant wagered battles. Set your wager ($1-$25) and format. You'll be matched with another player at the same stake.
pokedexter_queue_statusCheck your position in the quick match queue and see if you've been matched.
pumpstream_live_summaryReturns a quick summary of live pump.fun streams.
solana_resolve_tokenResolve token metadata using Dexter's token lookup heuristics.
solana_list_balancesList a wallet's SOL and SPL token balances.
solana_sendTransfer SOL, USDC, DEXTER, or any SPL token to a wallet address or Twitter handle. REQUIRED: wallet_address (source wallet), recipient_value (destination), amount_ui (amount) OPTIONAL: mint (defaults to SOL), memo, confirm (for large transfers) Examples: - Send 1 USDC: wallet_address="YOUR_WALLET…
solana_swap_previewPreview a SOL-token swap using UI-denominated amounts before execution.
solana_swap_executeExecute a SOL-token swap after previewing the expected output.
stream_public_shoutSubmit a short shout-out for Dexter to highlight on the live stream.
stream_shout_feedRetrieve the latest public shouts queued for the stream overlay.
studio_createStart a Dexter Studio agent to perform a task. Returns a job ID immediately. Poll with studio_status to check progress. SUPERADMIN ONLY.
studio_statusCheck the status of a Studio job. Returns current step, turn count, and result when complete.
studio_cancelCancel a running Studio job. Only works on jobs with status "running".
studio_inspectGet full details of a Studio job including event timeline. For debugging.
studio_listList all Studio jobs (for debugging). Shows recent jobs.
studio_breaking_newsCreate professional newscast videos and infographics for marketing. Generates Sora videos and/or meme infographics with the Dexter branding. SUPERADMIN ONLY.
studio_news_statusCheck the status of a breaking news video or infographic job.
resolve_walletResolve the effective managed wallet for this caller (session override, resolver default, or env fallback).
list_my_walletsList wallets linked to the authenticated Dexter account.
set_session_wallet_overrideOverride the wallet used for this MCP session (until cleared).
auth_infoDiagnostics for wallet resolution, session overrides, and Dexter token state.
x402_searchx402_payx402_fetchExecute one API-custodied purchase intent. Pass only the opaque intentId from an authenticated x402_check and the exact maxAmountAtomic ceiling approved by the user or delegated policy. Never pass URL, body, seller terms, route data, or a prepared purchase. Say dispatched only when dispatch.boundary…
x402_checkCheck one exact request before paying. Supply either a public URL or a stable resourceId from the current Indexter result, never both. With resourceId, copy the canonical method from the same current result; OpenDexter resolves the private route server-side and rejects method drift before probing. F…
x402_walletShow the connected Dexter Wallet and the current money, asset, receive-address, and activity data the wallet backend can resolve.
indexter_discoverApp-only Indexter browser for overview and provider pages. Copy endpoint and Actor cursors exactly when the widget requests another page. This reads no wallet data and makes no payment.
indexter_searchCall once for broad suggestions, Indexter exploration, named providers, or API and service discovery. The server routes the exact wording to a curated overview, one provider, or task search. Results never authorize payment or Actor execution.
x402_statusInspect the same server-owned purchase intent without creating a purchase, changing routes, redispatching the provider request, or rebroadcasting a transaction. Pass only intentId.
x402_accessClassify the exact request through the canonical x402 check path. Paid requests return the canonical quote or intent. Free requests return the provider check result. Sign-In-With-X is reported as unavailable until OpenDexter has an eligible connected signer. This tool does not create a temporary wal…
dexter_walletRead-only view of the user's Dexter wallet, the non-custodial passkey vault bound to this session. Returns its receive address, cash, reported credit capacity and read status, payment-readiness guidance, and recent activity after native OpenDexter authorization. Cash, reported credit, and exact-inte…
dexter_wallet_portfolioRead the governed asset portfolio bound to this authenticated MCP session. It accepts no identity or authority arguments. Approved holdings expose the canonical assetId accepted by governed Send, Buy, and Sell; unreviewed or blocked holdings expose null.
run_socials_marketrun_socials_websiterun_socials_telegramrun_socials_xdexscreener_searchSearch pairs by query (optionally filter by chain)
dexscreener_tokensFetch token metadata for addresses
dexscreener_token_pairsFetch pairs for a given token address
dexscreener_pair_detailsFetch pair details by chain/pair_id
dexscreener_token_profilesFetch token profiles for a set of addresses
dexscreener_token_boosts_latestFetch latest token boosts for addresses
dexscreener_token_boosts_topFetch top token boosts
ensure_token_activatedDB/admin operation to activate a token record
ensure_token_enrichedRun enrichment pipeline for a token
get_token_links_from_dbReturn canonical socials/website links stored for a token
analyze_token_ohlcv_rangeFetch OHLCV candles from Birdeye v3 over a given window
get_twitter_historyRead stored tweets and snapshots for a mint from the DB
get_media_from_tweetReturn media URLs and optional metadata for a stored tweet
get_prediction_historyQuery tweet_prediction_scores with filters and aggregates
verify_tweet_predictionScore a tweet prediction for one token (pump/dump/target)
verify_relative_predictionScore a relative prediction between two or more tokens
program_accounts_scanPaginated scan of accounts owned by a program using Helius getProgramAccountsV2. Supports filters and encoding.
program_accounts_tailFetch only accounts modified since a given slot using Helius getProgramAccountsV2 changedSinceSlot.
list_recent_analysesSummarize recent analysis JSON files.
list_resource_urisReturn recent report resource URIs (report://).
get_latest_analysisReturn the most recent analysis JSON.
get_report_headReturn lightweight metadata for a report (by filename, mint, or uri).
read_report_uriRead a report using its report:// URI
list_reports_pagePaginated report URIs (opaque cursor)
list_reports_for_mintList report files for a given mint (most recent first)
resolve_report_idResolve any of {filename|uri|mint|id} to {file, uri, mint}
search_reportsSubstring search over recent report JSON files
54 further tools are not listed here. The complete surface is in the source.
API_BASE_URLBIRDEYE_API_KEYBIRDEYE_DEFAULT_CHAINCODEX_BRIDGE_COMMANDCODEX_BRIDGE_HOMECODEX_BRIDGE_MAX_TOTAL_TIMEOUT_MSCODEX_BRIDGE_REQUEST_TIMEOUT_MSCODEX_HOMECODEX_SCHEMA_DEBUGCONNECTOR_LOGIN_BASECONNECTOR_OPEN_MCP_CLIENT_IDCONNECTOR_OPEN_MCP_REDIRECT_URICONNECTOR_OPEN_MCP_VAULT_CLIENT_IDCONNECTOR_OPEN_MCP_VAULT_REDIRECT_URICRAWL_CONCURRENCYCRAWL_DELAY_MSDEXTER_API_BASE_URLDEXTER_API_URLDEXTER_MCP_ENV_FILEto one absolute, service-owned mode-0600 regular fileDEXTER_STREAM_BASE_URLFETCH_UAFORCE_COLORHELIUS_API_KEYHYPERLIQUID_API_BASE_URLINTERNAL_DEXTERCARD_HMAC_SECRETMCP_AUTH_AUDITMCP_JWT_SECRETMCP_LOG_FORCE_COLORMCP_SCHEMA_DEBUGMCP_SERVER_NAMEMCP_SERVER_VERSIONMCP_SESSION_IDLE_TIMEOUT_MSMCP_SESSION_LABEL_HEADERMCP_SESSION_METRICS_INTERVAL_MSMCP_SESSION_METRICS_TOP_NMCP_SESSION_REAPER_INTERVAL_MSMCP_SUPABASE_BEARERMCP_USER_JWT_SECRETMCP_WALLET_RESOLVER_CACHE_MSMCP_X402_ENABLEDMCP_X402_FACILITATOR_URLMCP_X402_MAX_ATTEMPTSMCP_X402_PAY_TOMCP_X402_REGISTER_ENABLEDMCP_X402_REGISTER_PATHMCP_X402_SETTLEMENT_PATHMCP_X402_SETTLEMENT_V2_PATHMCP_X402_SETTLE_V2_ENABLEDNATIVE_EXACT_MCP_SERVICE_HMAC_SECRET(32 bytes or longer), configured to theOPEN_MCP_LOG_REDACTION_KEYOPEN_MCP_PORTOPEN_MCP_TEST_VAULT_JWKS_CACHE_MSOPEN_MCP_TEST_VAULT_JWKS_URLOPEN_MCP_UPLOAD_ROOTPOKEDEXTER_API_URLPROBE_PORTPUBLIC_CONNECTOR_BASEPUMPSTREAM_LIVE_URLRESEARCH_WEBHOOK_TOKENRESEARCH_WEBHOOK_URLSOLANA_RPC_ENDPOINTSTREAM_SCENE_API_BASE_URLSUPABASE_JWT_SECRETTAVILY_API_KEYTAVILY_API_URLTOKEN_AI_APPS_SDK_ASSET_BASETOKEN_AI_DEFAULT_WALLET_ADDRESSTOKEN_AI_DEFAULT_WALLET_IDTOKEN_AI_ENABLE_APPS_SDKTOKEN_AI_EVENTS_TOKENTOKEN_AI_MCP_CORSTOKEN_AI_MCP_ENABLE_RUN_TOOLSTOKEN_AI_MCP_OAUTHSet TOKEN_AI_MCP_OAUTH=true and supply TOKEN_AI_OIDC_ (or Supabase) endpoints. Users sign in via the Dexter IdP; tokens are validated on every session.TOKEN_AI_MCP_PORTTOKEN_AI_MCP_PROFILETOKEN_AI_MCP_PROFILE=opendexter loads only the x402 surface on the authenticated server.TOKEN_AI_MCP_PUBLIC_URLTOKEN_AI_MCP_TOKENDefine TOKEN_AI_MCP_TOKEN. Any request presenting the matching Authorization: Bearer … header is accepted without hitting the IdP.TOKEN_AI_MCP_TOOLSETSLeave TOKEN_AI_MCP_TOOLSETS unset to load every bundle. Set it (comma-separated) to restrict, e.g. TOKEN_AI_MCP_TOOLSETS=wallet.TOKEN_AI_OIDC_ALLOWED_USERSTOKEN_AI_OIDC_AUTHORIZATION_ENDPOINTTOKEN_AI_OIDC_CHATGPT_HOSTSTOKEN_AI_OIDC_CLIENT_IDTOKEN_AI_OIDC_CLIENT_ID_CHATGPTTOKEN_AI_OIDC_IDENTITY_CLAIMTOKEN_AI_OIDC_ID_TOKENTOKEN_AI_OIDC_ID_TOKEN_SECRETTOKEN_AI_OIDC_ISSUERTOKEN_AI_OIDC_JWKS_URITOKEN_AI_OIDC_REGISTRATION_ENDPOINTTOKEN_AI_OIDC_RSA_KIDTOKEN_AI_OIDC_RSA_PRIVATE_KEYTOKEN_AI_OIDC_SCOPESTOKEN_AI_OIDC_TOKEN_ENDPOINTTOKEN_AI_OIDC_USERINFOTOKEN_AI_UI_PORTTOKEN_AI_WIDGET_DOMAINTWITTER_SESSION_PATHX402_API_URLX402_CATALOG_TTL_MSX402_PAY_TOpm_exec_pathNEXT_PUBLIC_SENTRY_DSNSENTRY_DSNSENTRY_OPEN_MCP_DSNSENTRY_ORGSENTRY_PROJECTSUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYSUPABASE_URLTOKEN_AI_WIDGET_SENTRY_DSNDependencies
26 runtime dependencies (7 dev), 1 flagged: playwright
Tool annotations
69/154 tools have annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
145/154 tools missing one or more hints — list_bundles (missing: destructiveHint, idempotentHint, openWorldHint); get_bundle (missing: destructiveHint, idempotentHint, openWorldHint); get_my_bundles (missing: destructiveHint, idempotentHint, openWorldHint), +142 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.
Destructive tools are labelled
1 tool perform destructive updates without destructiveHint — delete_note deletes at line 394 (fs.unlinkSync(file))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
openWorldHint matches behaviour
7 tools claim openWorldHint=false but make outbound HTTP — create_bundle → dynamic (line 450); update_bundle → dynamic (line 549); publish_bundle → dynamic (line 624)
Either flip openWorldHint to true (acknowledging external reach) or refactor the handler to avoid outbound HTTP. If the only network calls are to a known fixed endpoint that you consider part of the tool itself, document that and keep openWorldHint=false; otherwise true is honest.
Tool inputs are validated
143/154 tool handlers declare input schemas (93%)
Declare an inputSchema with zod/joi/yup on every tool definition.
License file
No license file
Add a LICENSE file (MIT, Apache-2.0, etc.).
Tool test coverage
Only 16/154 tools referenced in tests (10%)
Write tests that reference each tool by name so every tool has at least one test.
Dependency freshness
1/26 production deps stale: node-fetch@2023-11-30 (2.8y)
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/dexter-dao/dexter-mcp)?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