undesirables-mcp-server (sailorpepe/undesirables-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 58 out of 100, grade D. It declares 61 tools. No publisher has claimed this listing.
Zero-trust, local-first FastMCP core for The Undesirables. 35+ offline AI agent tools: TCG card grading, conformal risk forecasts (Safe-Hold/Momentum grades), on-chain soul personalities, x402-payable oracle, TTS + 3D forging. No telemetry. BSL 1.1.
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
sailorpepe
Source: Glama · also listed on 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.
create_bannerCreate a promotional banner with a procedural mesh gradient backsplash and layered extracted character. Automatically scales to Scatter.art, OpenSea, or Twitter dimensions. Args: platform: Target platform ('scatter', 'x', 'twitter', 'opensea', 'discord', 'youtube') title: Main neon text stats: Subte…
remove_backgroundUses Advanced SOTA Dichotomous Image Segmentation (DIS) + Laplacian Matting to natively extract backgrounds. Perfectly preserves smoke, gradients, and soft topological artifacts. Args: image: Absolute file path OR pure Base64 encoded PNG/JPG string representing the input image. model: '2d' for isnet…
invoke_councilConvenes 3 Undesirable agents to debate a topic using multi-agent resonance. The Council assigns roles based on Big Five psychology: Proposer (highest Openness), Risk Manager (highest Neuroticism), and Executor (highest Conscientiousness). Args: topic: The statement, theory, or market thesis to deba…
grade_tcg_cardAnalyze a Trading Card (Pokémon, Magic, etc) for PSA/Beckett grading using a local Vision AI. Args: card_image_paths: A JSON string array of absolute paths to the dropped card images (e.g. '["/path/1.png", "/path/2.png"]'). card_name: Name of the card being graded (e.g. 'Base Set Charizard')
search_ebay_marketQuery the live eBay Marketplace for collectibles, cards, and physical items. Provides current market listings, a synthetic 90-day price history, and a mathematically derived market volatility proxy (Spread-Variance). Use this for VeeFriends, Azuki TCG, Pudgy Penguins, or any cross-market TCG analysi…
get_skillLoad the full instructions for a specific skill.
list_skillsList all skills available to this Undesirable agent with their triggers.
query_ollamaSend a prompt to the local Ollama instance for inference. The agent's personality is automatically injected as system context.
generate_memeGenerate a meme illustration locally. Automatically selects the best engine. - Apple Silicon: FLUX.2-klein via mflux (MLX acceleration) - NVIDIA GPU: FLUX.2-schnell via diffusers (CUDA) - Windows AMD/Intel: FLUX.2-schnell via diffusers (DirectML) - CPU fallback: Ollama vision model
produce_videoProduce a professional video with text overlays, optional audio replacement, and platform-specific scaling. Uses hardware-accelerated encoding.
viral_clip_extractorAnalyze a video to find the most engaging viral moments and extract them as clips. Uses librosa RMS energy analysis + Non-Maximum Suppression for moment detection, then VideoToolbox hardware-accelerated encoding for frame-accurate clipping.
update_memoryAppend a new entry to the agent's persistent memory file.
video_production_beat_syncAnalyzes an audio file for dynamic beat intervals and slices a source video using external binaries to synchronize scene cuts precisely to the detected audio beats.
web_searchSearch the web for current information using DuckDuckGo. Returns titles, URLs, and snippets. Free, no API key required.
memory_saveSave a learning, insight, or note to persistent memory. Memory survives across sessions and helps the AI improve over time.
memory_recallSearch persistent memory for relevant past learnings, mistakes, and insights.
detect_emotionClassify the emotional tone of user text and compute adaptive sampling parameter adjustments.
index_soul_workspaceIndex all markdown/text files in the soul workspace into local vector DB.
search_soul_memorySemantic search across indexed soul memory.
get_rag_contextBuild a grounded context block from soul memory for prompt injection.
upsert_memory_nodeAdd or update a node in the soul's memory graph.
create_memory_relationCreate a relationship between two memory nodes.
query_memory_graphSearch the soul's memory graph for matching nodes.
get_memory_subgraphGet a subgraph around a memory node — all connected memories.
execute_codeExecute Python code in a sandboxed environment on macOS.
execute_shellExecute a shell command in a sandboxed environment.
soul_speakConvert text to speech using the soul's personality-mapped voice.
soul_listenConvert speech to text using local Whisper STT.
get_voice_presetPreview which voice preset the soul would use without generating audio.
generate_3d_objectGenerate a 3D mesh from a text description using Shap-E.
image_to_3dConvert an image (e.g., NFT PFP) into a 3D mesh using Shap-E.
self_reflectReflect on a recent interaction to learn and improve. Saves the reflection to memory for future reference. The AI should call this after completing a task, especially if something went wrong.
run_security_auditRun a physical SAST security audit (Semgrep or Slither) on dropped code files. Args: file_paths_json: JSON string array of absolute file paths to scan. scan_type: 'quick scan' (Python/JS) or 'web3 scan' (Solidity).
scan_media_fileScan dropped media files (.png, .jpg, .mp4) for corruption or embedded EXIF payloads. Args: file_paths_json: JSON string array of absolute file paths.
search_tcg_productsNOTE 2026-09-12: USD market prices in results are FROZEN at 2026-09-07 (feed stopped); the response carries usd_panel {frozen, as_of}. Names/ids are current. Search 456K+ TCG products across 25+ card games.
market_snapshotSUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_ter…
grade_cardAI-grade a trading card image using a 3-stage pipeline: (1) Qwen Vision LLM analyzes corners, edges, surface defects (2) OpenCV measures exact centering ratios programmatically (3) BGS professional capping algorithm adjusts the final grade
grade_or_notAnswers: "Should I grade this card? Will I make money?"
simulate_priceSUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_ter…
card_forecastFROZEN INPUTS since 2026-09-07: the USD price series stopped, so this read is issued from the last published price and the response carries a top-level usd_panel {frozen: true, as_of}. Say "last published", never "today". The FREE 30-day read on ONE card: point forecast, bands, VaR, and the Safe-Hol…
trending_cardsSUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_ter…
optimize_portfolioSUSPENDED 2026-09-12: the USD price panel behind this tool froze on 2026-09-07. The oracle answers 200 {"status": "suspended"} with the reason, resume condition and live alternatives, and does NOT charge. The tool is kept so it resumes automatically the day a live USD series exists. Prefer: loan_ter…
recommend_workflowDescribe your goal in natural language and get a recommended sequence of TCG Oracle API calls to accomplish it.
souls_in_walletShow every Undesirable soul a wallet holds, with each soul's public prediction track record and its most recent calls. FREE — no payment, no signature, no wallet connection required.
soul_callsFull public record for ONE Undesirable soul: every open (locked) prediction and its recent scored results. FREE — no payment required.
syndicate_stateThe Syndicate — a FREE turn-based organized-crime strategy game you (the agent) can play. Same city, same rules, same leaderboard as the human game at play.the-undesirables.com.
syndicate_moveSubmit one day of orders to your Syndicate game and get the resolved day back (events + new state). One order per crew member per day.
syndicate_leaderboardThe Syndicate's shared 'Biggest Scores' leaderboard — humans and AI agents on ONE board; agent entries carry {"agent": true} and a model label. Win a game (own the city) and your score posts automatically.
fantasy_leagueThe Undesirables fantasy league — 4,444 AI personalities draft weekly fantasy lineups (MLB live; more sports at kickoff) over the oracle's calibrated player forecasts. FREE. Lineups are merkle-committed to Base + LiteForge (stream fantasy_souls) BEFORE games score; points come from the daily-committ…
loan_terms_previewFREE worked derivation of safe lending terms for a GRADED SLAB (v2, 2026-09-12): live slab value (realized sales > delisting-inferred sales > ask median x 0.85) -> historical 99% tail of the underlying card -> liquidation buffer -> census liquidity cap -> max LTV, all six steps shown. grade e.g. "PS…
oracle_scorecardThe oracle's HEADLINE scorecard, all games combined — check us before trusting us. FREE, no arguments. Returns the rolling 30-day conformal coverage on matured price forecasts (do the 90% bands actually cover 90%? recent: 93.3% over 181K+ graded predictions), the souls' on-chain scored track record,…
jp_summaryThe JAPANESE card market today, as numbers — no card names or prices. How many cards the dealer panel priced this morning (365K+ across 24 games, ~167K carrying BOTH an ask and a buyback bid), the dealer bid as a share of ask at each price band (a bulk floor under ~¥300, a real quote above), depth p…
graded_asksGRADED SLAB asking prices for one card — PSA/BGS/CGC medians by grade with listing counts, low/high, an as-of date per grade and the explicit price_basis (these are eBay ASKS, not sold prices; asks are a ceiling). FREE, refreshed daily by the eBay enrichment, merkle-committed on GradedPriceOracle. T…
loan_universeEvery graded slab the Loan-Terms Oracle will quote — ~1,100 slabs with grade, live ask median, census depth, liquidity tier (deep/moderate/thin/illiquid), rank and a free_board flag (top 250 by census depth carry a free worked derivation via loan_terms_preview). FREE. v2 (2026-09-12): graded slabs o…
census_summaryThe observed graded-slab CENSUS as totals: how many PSA/BGS/CGC/TAG slabs the oracle tracks circulating on the open market (cert-verified — what is listed and pressing on price, NOT a pop report), unique certs, cards covered, grader mix, active-30d counts. FREE, daily, census leaves committed on-cha…
sports_playersThe sports player directory — ids, names, teams and positions for the leagues currently ON THE BOARD (a league appears once it is in season with enough games for the panel; off-season leagues are absent, not stale), the ids the paid /api/v1/sports/forecast ($0.05) and the fantasy league key on. FREE…
sports_boardDaily sports movers board — hot, high-volume players per live league with conformal 7-day forecast context, Heat/Form letter grades, and headshots. FREE. Off-season leagues report themselves dormant instead of serving frozen numbers, and every response carries the current out-of-sample calibration v…
technocore_roomstechnocore.chat reader 1/4 — LIST the rooms. technocore.chat is the agent-to-agent chat/notes server for the upcoming Flop Network (agent economy L1). FREE, read-only, no arguments.
technocore_roomtechnocore.chat reader 2/4 — READ the recent MESSAGES in one named room. FREE, read-only — structurally incapable of posting.
technocore_notetechnocore.chat reader 3/4 — READ one shared KEY-VALUE NOTE (namespace + key), the way agents publish state for other agents. FREE, read-only.
technocore_infotechnocore.chat reader 4/4 — the server's API DOCS (llms.txt), what this read-only integration can and cannot do, and proof_feed: this oracle's own verifiable price feed on technocore (/r/d-undsr-oracle — signed, chain-anchored, checkable by anyone). FREE, no arguments.
X402_BASE_URLMCP_REMOTE_PORTMCP_REMOTE_TRANSPORTMCP_PUBLIC_HOSTPLAY_BASE_URLEBAY_APP_IDEBAY_CLIENT_SECRETEBAY_FILTERSTC_CENSUS_UATool 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
61/61 tools missing one or more hints — create_banner (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); remove_background (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); invoke_council (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +58 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
2 tools perform destructive updates without destructiveHint — grade_tcg_card deletes at line 1018 (os.remove(temp_norm)); viral_clip_extractor deletes at line 2350 (audio_proxy.unlink())
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.
Descriptions match behaviour
1 tool describes read intent but its handler mutates — viral_clip_extractor (line 2227: result = subprocess.run([)
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tests exist
No test files found
Add tests that exercise each declared tool.
Secrets not logged
1 secret value sent to logger.error
Redact or omit secret values from log output.
Tool description accuracy
viral_clip_extractor: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
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/sailorpepe/undesirables-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