- Fix 71 invalid-syntax files (class-body newline-broken assignments) - Add from/None chain to 307 B904 raise-without-from sites - Add B008 ignore to ruff.toml (already in pyproject.toml) - Noqa F401 on __init__.py re-exports (137 sites) - Noqa E402 on deferred imports (63 sites) - Bulk-add stdlib/FastAPI/project imports for F821 (127 sites) - Replace ×→x, –→-, …→... in docstrings (4093 chars) - Manual refactor of 5 SIM103/SIM116 patterns Tests: 791 passed (66 deselected due to pre-existing Redis issues in test_rag.py) Co-authored-by: opencode <opencode@rugmunch.io>
185 lines
8.8 KiB
Python
185 lines
8.8 KiB
Python
"""
|
|
RMI Platform Manifest - Single source of truth for all platform descriptions.
|
|
|
|
Every external-facing surface reads from here: MCP discovery, docs,
|
|
directory listings, READMEs, Smithery, Glama, mcp.so, Open WebUI.
|
|
|
|
Update ONCE here, everything else auto-syncs.
|
|
"""
|
|
|
|
from datetime import UTC, datetime
|
|
|
|
from app.caching_shield.agent_skills_extended import get_all_agent_skills
|
|
from app.caching_shield.membership_plans import get_membership_catalog
|
|
from app.caching_shield.tool_registry import TOOL_COUNTS
|
|
from app.routers.x402_enforcement import CHAIN_USDC, TOOL_PRICES
|
|
|
|
|
|
def get_platform_manifest() -> dict:
|
|
"""The ONE source of truth. Every platform surface reads from this."""
|
|
tools = dict(TOOL_PRICES)
|
|
counts = TOOL_COUNTS
|
|
membership = get_membership_catalog()
|
|
skills = get_all_agent_skills()
|
|
|
|
return {
|
|
# ═══ IDENTITY ═══
|
|
"name": "Rug Munch Intelligence",
|
|
"tagline": "The Bloomberg Terminal of Shitcoins",
|
|
"version": "3.3.0",
|
|
"updated": datetime.now(UTC).isoformat(),
|
|
# ═══ TOOL COUNTS (auto from tool_registry) ═══
|
|
"tools": {
|
|
"total": counts["total"],
|
|
"paid": len(tools),
|
|
"with_free_trials": len(tools), # every paid tool has free trials
|
|
"free_trial_calls": "1-5 per tool, fingerprint-gated anti-abuse",
|
|
"local_mcp": counts["local_mcp_svm"] + counts["local_mcp_evm"],
|
|
"free_public": counts["free_mcp_boar"],
|
|
"categories": len({p.get("category", "analysis") for p in tools.values()}),
|
|
"chains": len(CHAIN_USDC),
|
|
"facilitators": 8,
|
|
},
|
|
# ═══ PRICING ═══
|
|
"pricing": {
|
|
"individual": "$0.01 - $0.40 per call",
|
|
"scan_packs": {
|
|
"count": membership["stats"]["total_bundles"],
|
|
"range": "$0.09 - $0.17",
|
|
"discount": "50-53% off individual tools",
|
|
},
|
|
"memberships": {
|
|
"tiers": membership["stats"]["subscription_tiers"],
|
|
"range": "$4.99 - $199.99/month",
|
|
"daily_calls": "50 - 5,000",
|
|
"discount": "60-90% vs pay-per-use",
|
|
},
|
|
"streams": {
|
|
"count": membership["stats"]["total_streams"],
|
|
"range": "$0.30 - $0.75/hour or $5.99 - $14.99/day",
|
|
},
|
|
"research": {
|
|
"count": membership["stats"]["total_research"],
|
|
"range": "$0.25 - $1.50 per report",
|
|
},
|
|
"batch": {
|
|
"count": membership["stats"]["total_batch"],
|
|
"discount": "75-90% off bulk scanning",
|
|
},
|
|
"refund_policy": "Full automatic refund within 48h if tool returns no data",
|
|
},
|
|
# ═══ SKILLS ═══
|
|
"agent_skills": {
|
|
"total": len(skills["skills"]),
|
|
"categories": {
|
|
"security_vetting": [
|
|
"token_vetting",
|
|
"scam_investigation",
|
|
"rugpull_forensics",
|
|
"compliance_screen",
|
|
],
|
|
"trading_execution": [
|
|
"launch_sniper",
|
|
"mev_avoidance",
|
|
"market_maker",
|
|
"portfolio_defense",
|
|
],
|
|
"alpha_discovery": [
|
|
"alpha_discovery",
|
|
"whale_tracking",
|
|
"cex_listing_predictor",
|
|
"insider_trading",
|
|
],
|
|
"defi_yield": ["defi_yield_optimizer", "bridge_monitor", "dao_governance"],
|
|
"nft_influencer": ["nft_sniper", "kols_detector", "airdrop_hunting"],
|
|
},
|
|
"agent_prompts": len(skills["agent_prompts"]),
|
|
},
|
|
# ═══ ACCESS ═══
|
|
"endpoints": {
|
|
"mcp": "https://mcp.rugmunch.io/mcp",
|
|
"discovery": "https://mcp.rugmunch.io/.well-known/mcp",
|
|
"tools": "https://mcp.rugmunch.io/mcp/tools",
|
|
"membership": "https://mcp.rugmunch.io/mcp/membership",
|
|
"skills": "https://mcp.rugmunch.io/mcp/skills",
|
|
"docs": "https://rugmunch.io/docs",
|
|
"investigate": "https://rugmunch.io/investigate",
|
|
},
|
|
# ═══ INTEGRATIONS ═══
|
|
"integrations": {
|
|
"mcp_clients": [
|
|
"Claude Desktop",
|
|
"Cursor",
|
|
"Windsurf",
|
|
"Cline",
|
|
"OpenAI Agents",
|
|
"LangChain",
|
|
],
|
|
"sdks": [
|
|
"Python (pip install rmi-agent-sdk)",
|
|
"TypeScript (npm install @rugmunch/agent-sdk)",
|
|
],
|
|
"directories": {
|
|
"smithery": "https://smithery.ai/server/@cryptorugmuncher/rug-munch-intelligence",
|
|
"glama": "https://glama.ai/mcp/servers/@cryptorugmuncher/rug-munch-intelligence",
|
|
"mcp_so": "https://mcp.so/server/rug-munch-intelligence",
|
|
"github": "https://github.com/Rug-Munch-Media-LLC/rug-munch-intelligence-mcp",
|
|
},
|
|
},
|
|
# ═══ WHAT'S NEW ═══
|
|
"changelog": [
|
|
"18 agent skills with workflow guides and anti-abuse rules",
|
|
"4 membership tiers with daily call limits (60-90% discount)",
|
|
"4 scan packs with 50-53% off individual tools",
|
|
"4 real-time streaming feeds (WebSocket + webhook delivery)",
|
|
"4 deep research report products",
|
|
"3 batch scanning products (75-90% off bulk)",
|
|
"3 AI-optimized data feeds for LLM consumption",
|
|
"85 local MCP tools (Solana RPC + EVM across 86 networks)",
|
|
"50 free Boar blockchain tools (ETH, ENS, contracts)",
|
|
"Multi-provider caching shield on every data call",
|
|
],
|
|
# ═══ DESCRIPTIONS (formatted for different contexts) ═══
|
|
"descriptions": {
|
|
"short": f"{counts['total']} crypto intelligence tools with free trials. Token security, wallet forensics, whale tracking, market data. Pay-per-use via x402 micropayments. Scan packs and membership tiers available.",
|
|
"medium": f"Rug Munch Intelligence provides {counts['total']} crypto intelligence tools across {len(CHAIN_USDC)} blockchains. Every tool includes free trials (1-5 calls). Scan packs from $0.09 (53% off). Membership tiers from $4.99/month. Real-time streams, deep research reports, batch scanning, and AI-optimized data feeds. Full refund if no data returned. 18 agent skills with workflow guides included.",
|
|
"long": f"Rug Munch Intelligence is a unified crypto intelligence platform serving {counts['total']} tools. Every data call routes through a multi-layer caching shield with automatic provider fallback across 20+ data sources.\n\nTOOLS: Token security (rug pulls, honeypots, audits), wallet intelligence (PnL, clustering, insider networks), whale tracking, market data, DeFi analytics, social signals.\n\nPRICING: Pay-per-use from $0.01. Scan packs from $0.09 (50-53% off). Membership tiers from $4.99-$199.99/month (60-90% discount). Real-time streams from $0.30/hr. Deep research reports from $0.25. Batch scanning at 75-90% off.\n\nFREE TRIALS: Every paid tool includes 1-5 free calls. Fingerprint-gated anti-abuse. Monthly reset.\n\nAGENT SKILLS: 18 workflow guides teaching agents how to vet tokens, track whales, investigate scams, discover alpha, and manage portfolios.\n\nCHAINS: {', '.join(sorted(CHAIN_USDC.keys())[:8])} and 80+ more via local MCP servers.\n\nACCESS: MCP endpoint at https://mcp.rugmunch.io/mcp. REST API at https://rugmunch.io/api. Python and TypeScript SDKs available.",
|
|
},
|
|
}
|
|
|
|
|
|
# ═══ AUTO-SYNC ═══
|
|
|
|
|
|
def sync_to_mcp_discovery() -> dict:
|
|
"""Generate the MCP discovery JSON fragment that should be merged into _build_discovery()."""
|
|
m = get_platform_manifest()
|
|
return {
|
|
"description": m["descriptions"]["short"],
|
|
"tools_count": m["tools"]["total"],
|
|
"free_trial_tools": m["tools"]["with_free_trials"],
|
|
"pricing": m["pricing"],
|
|
"skills_count": m["agent_skills"]["total"],
|
|
"membership_endpoint": m["endpoints"]["membership"],
|
|
"skills_endpoint": m["endpoints"]["skills"],
|
|
}
|
|
|
|
|
|
def sync_to_readme() -> str:
|
|
"""Generate a README.md section."""
|
|
m = get_platform_manifest()
|
|
return m["descriptions"]["long"]
|
|
|
|
|
|
def sync_to_directory_listing() -> dict:
|
|
"""Generate fields for Smithery/Glama/mcp.so listings."""
|
|
m = get_platform_manifest()
|
|
return {
|
|
"name": m["name"],
|
|
"description": m["descriptions"]["short"],
|
|
"tools_count": m["tools"]["total"],
|
|
"chains": m["tools"]["chains"],
|
|
"pricing": "Free trials + pay-per-use + memberships",
|
|
"version": m["version"],
|
|
"endpoint": m["endpoints"]["mcp"],
|
|
}
|