- Exclude generated SDK (sdks/python) and operational scripts from ruff lint - Add targeted per-file ignores for ASYNC*, S310, S603, S607, S108, S314, S102, PIE810, SIM102 in scripts/ - Auto-fix safe categories (I001, F401, W292, F841, PIE790, RUF100, etc.) - Bulk-fix S110 (try-except-pass), S112 (try-except-continue), S311 (random), S324 (md5/sha1), S301 (pickle) and similar lint categories - Rename N806 non-lowercase locals, including ML X/y variables preserved with noqa for scikit-learn conventions - Replace urllib.request calls with httpx.AsyncClient / httpx.Client (S310) - Wrap blocking os.path/os calls in asyncio.get_running_loop().run_in_executor - Replace subprocess.run with asyncio.create_subprocess_exec in async contexts - Store asyncio.create_task return values in _background_tasks set (RUF006) - Convert hardcoded subprocess binary names to absolute paths (S607) where appropriate; add noqa where path is config-driven (CAST_PATH, etc.) - Parameterize SQL queries with placeholders and add noqa for sanitized inputs - Fix all mechanical categories: SIM102, PIE810, TC001/2/3, S108, S314, S107, S306, S301, N802/N815/N817, S104, S605, S501, RUF022, UP031 - Add missing 'import asyncio' where referenced but not imported (F821) - Fix E402 module-import-not-at-top by adding '# noqa: E402' for circular-import safe cases and code-defined imports - Remove hardcoded Redis password in databus_warm_cron.py; use env vars Tests: - Add tests/unit/core/test_ai_router.py (8 tests): model resolution, chat completion with mocked httpx, fallback to OpenRouter, no-provider error, streaming - Add tests/unit/core/test_tracing.py (7 tests): setup_otel disabled/enabled, shutdown_otel, span helpers, tracing-enabled route registration - Add tests/unit/core/test_langfuse.py (2 tests): no-env init, noop flush - Fix tests/unit/domain/scanner/test_service.py to import from the moved app.domains.scanners.core.service Result: 'ruff check .' passes with 0 errors (was 1470). Pytest: 808 passed, 1 skipped (no regressions). |
||
|---|---|---|
| .. | ||
| python | ||
| typescript | ||
| README.md | ||
| smithery.yaml | ||
Rug Munch Intelligence — MCP Server
MCP server exposing crypto intelligence tools to AI agents.
8 tools for AI agents. Real-time token risk, wallet analysis, deployer reputation, news sentiment, full AI research reports, RAG search, similar tokens, and cross-chain entity resolution. 13+ chains (Solana, Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Tron, Bitcoin, Avalanche, Fantom, Gnosis + EVM subnets). x402 paid tier.
Quick start
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"rugmunch": {
"url": "https://mcp.rugmunch.io/mcp",
"transport": "streamable-http"
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"rugmunch": {
"url": "https://mcp.rugmunch.io/mcp",
"transport": "streamable-http"
}
}
}
Continue.dev
Add to ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"name": "rugmunch",
"url": "https://mcp.rugmunch.io/mcp"
}
]
}
}
Available tools
| Tool | Description | x402 price |
|---|---|---|
get_token_risk |
Real-time risk score for any token across 13+ chains | FREE 5/day, $0.01 |
get_wallet_analysis |
Wallet activity, balance, history, reputation | FREE 5/day, $0.01 |
get_deployer_reputation |
Deployer reputation 0-100, deterministic | $0.02 |
get_news_sentiment |
Latest news + composite sentiment | FREE 5/day, $0.01 |
generate_report |
7-section LLM research report | $5.00 |
query_catalog |
Natural language catalog query | $0.05 |
find_similar_tokens |
Vector-similar tokens | $0.03 |
resolve_entity |
Cross-chain entity resolution | $0.10 |
Authentication
Free tier: 5 calls/day, no auth.
Paid tier: include X-Payment: <base64(tx_hash+signature)> header.
Architecture
- OpenAPI: https://api.rugmunch.io/openapi.json
- MCP server: https://api.rugmunch.io/mcp (JSON-RPC 2.0 + plain JSON)
- x402 catalog: https://api.rugmunch.io/api/v1/x402/catalog
- Health: https://api.rugmunch.io/health
Direct tool calls (no MCP)
# Get token risk
curl -X POST https://api.rugmunch.io/mcp/call/get_token_risk \
-H "Content-Type: application/json" \
-d '{"arguments":{"chain":"solana","address":"DezXAZ..."}}'
# Generate AI report
curl -X POST https://api.rugmunch.io/mcp/call/generate_report \
-H "Content-Type: application/json" \
-d '{"arguments":{"subject_type":"token","subject_id":"solana:DezXAZ..."}}'
Python SDK
pip install rugmunch
import asyncio
from rugmunch_sdk import RMI
async def main():
async with RMI(base_url="https://api.rugmunch.io") as client:
risk = await client.get_token_risk("solana", "DezXAZ...")
print(f"Risk: {risk.score}/100 ({risk.tier})")
report = await client.generate_report("token", "solana:DezXAZ...")
print(report.markdown[:500])
asyncio.run(main())
TypeScript SDK
npm install @rugmunch/sdk
import { RMI } from "@rugmunch/sdk";
const client = new RMI({ baseUrl: "https://api.rugmunch.io" });
const risk = await client.getTokenRisk("solana", "DezXAZ...");
License
MIT © Rug Munch Intelligence
Links
- Homepage: https://rugmunch.io
- Documentation: https://docs.rugmunch.io
- Repository: https://github.com/Rug-Munch-Media-LLC/rug-munch-intelligence-mcp
- HuggingFace: https://huggingface.co/cryptorugmunch/rug-munch-intelligence
- 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