Skip to main content

3 zero-dependency MCP servers in pure Python — CDP scraper, crypto monitor, email sender

Project description

MCP Tools Bundle — 3 Zero-Dependency MCP Servers in Pure Python

Tests License Python Dependencies MCP

Three production-ready MCP (Model Context Protocol) servers for AI agents. Zero pip dependencies. Pure Python stdlib. 105 tests passing.

Servers

Server Tools Tests Repo
mcp-cdp-scraper 12 38 github.com/aaameobius-crypto/mcp-tools-bundle
mcp-crypto-monitor 10 30 github.com/aaameobius-crypto/mcp-tools-bundle
mcp-email-sender 8 37 github.com/aaameobius-crypto/mcp-tools-bundle
Total 30 105

Why Zero Dependencies?

Every MCP server here uses only Python's standard library — no pip installs, no npm, no Playwright, no Selenium, no requests. Just Python 3.10+ and an internet connection.

This means:

  • Docker images stay tiny (~50MB vs 250MB+ with Playwright)
  • No supply chain risk — no third-party packages to audit
  • Fast CI — no dependency resolution, no cache invalidation
  • Portable — works in any Python environment without venv setup

Quick Install

# Clone all three
git clone https://github.com/aaameobius-crypto/mcp-tools-bundle.git
git clone https://github.com/aaameobius-crypto/mcp-tools-bundle.git
git clone https://github.com/aaameobius-crypto/mcp-tools-bundle.git

# No pip install needed — zero dependencies!
# Just run directly:
python mcp-cdp-scraper/src/server.py --manifest
python mcp-crypto-monitor/src/server.py --manifest
python mcp-email-sender/src/server.py --manifest

Claude Desktop Config (all 3 servers)

{
  "mcpServers": {
    "cdp-scraper": {
      "command": "python",
      "args": ["-m", "src.server", "--stdio"],
      "cwd": "/path/to/mcp-cdp-scraper"
    },
    "crypto-monitor": {
      "command": "python",
      "args": ["-m", "src.server", "--stdio"],
      "cwd": "/path/to/mcp-crypto-monitor"
    },
    "email-sender": {
      "command": "python",
      "args": ["-m", "src.server", "--stdio"],
      "cwd": "/path/to/mcp-email-sender",
      "env": {
        "SMTP_HOST": "smtp.gmail.com",
        "SMTP_PORT": "587",
        "SMTP_USERNAME": "your@gmail.com",
        "SMTP_PASSWORD": "your-app-password",
        "SMTP_TLS": "true"
      }
    }
  }
}

Hermes Agent Config

mcp:
  servers:
    cdp-scraper:
      command: python
      args: ["-m", "src.server", "--stdio"]
      cwd: /path/to/mcp-cdp-scraper

    crypto-monitor:
      command: python
      args: ["-m", "src.server", "--stdio"]
      cwd: /path/to/mcp-crypto-monitor

    email-sender:
      command: python
      args: ["-m", "src.server", "--stdio"]
      cwd: /path/to/mcp-email-sender

mcp-cdp-scraper — Web Scraping via Chrome DevTools Protocol

12 tools: scrape_page, extract_text, extract_links, extract_images, extract_table, fill_form, click_element, screenshot, get_html, wait_for, scroll_to, list_tabs

Connects to any Chrome/Chromium instance via raw WebSocket CDP. React/Vue compatible form filling using native setters + synthetic events. No Playwright, no Selenium.

from src.server import MCPCDPScraperServer

server = MCPCDPScraperServer()
result = server.handle_tool_call("scrape_page", {"url": "https://news.ycombinator.com"})

mcp-crypto-monitor — Crypto Wallet & Price Monitoring

10 tools: get_btc_balance, get_eth_balance, get_erc20_balance, get_btc_transactions, get_price, get_price_binance, get_portfolio_value, get_gas_price, get_fear_greed, monitor_address

Uses free public APIs only — Blockchain.info, Etherscan, CoinGecko, Binance, alternative.me. No API keys required.

from src.server import MCPCryptoMonitorServer

server = MCPCryptoMonitorServer()
result = server.handle_tool_call("get_portfolio_value", {"holdings": {"BTC": 0.5, "ETH": 10.0}})

mcp-email-sender — Email Validation & SMTP

8 tools: validate_email, validate_email_batch, check_mx_records, is_disposable, is_role_based, send_email, send_email_batch, test_smtp_connection

Email validation (format, disposable, role-based, MX records) + SMTP sending (TLS/SSL, CC/BCC, batch). Pure stdlib (smtplib, email, re, socket).

from src.server import MCPEmailServer

server = MCPEmailServer()
result = server.handle_tool_call("validate_email", {"email": "user@gmail.com"})

Architecture

Each server follows the same pattern:

MCP Client (Claude / Hermes / any)
    │  JSON-RPC over STDIO
    ▼
MCPServer (src/server.py)
    │  Tool dispatch + schema
    ▼
Engine (src/<engine>.py)
    │  Zero-dep business logic
    ▼
External API / Chrome / SMTP

Testing

# Run all tests
cd mcp-cdp-scraper && python -m pytest tests/ -q    # 38 passed
cd mcp-crypto-monitor && python -m pytest tests/ -q  # 30 passed
cd mcp-email-sender && python -m pytest tests/ -q    # 37 passed
# Total: 105 tests, all passing

License

MIT — all three servers

Author

aaameobius-crypto — github.com/aaameobius-crypto

BTC/USDT/ETH/XMR accepted via @darkbot_ai_bot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_tools_bundle-1.2.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_tools_bundle-1.2.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file mcp_tools_bundle-1.2.0.tar.gz.

File metadata

  • Download URL: mcp_tools_bundle-1.2.0.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for mcp_tools_bundle-1.2.0.tar.gz
Algorithm Hash digest
SHA256 ac4fa94c8d864460cca8e8409d475e41f92cc03a5b10470f9b15a146380618e0
MD5 08665cb565bedb09ec1247f7662fcf2e
BLAKE2b-256 e6073470ae15b2c39d69842a57f1db5818c9a343936e7d8bc8ef362d85a2302c

See more details on using hashes here.

File details

Details for the file mcp_tools_bundle-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_tools_bundle-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 98e7d53e92df17eb0309468c58bb559717a93f585392fd9619f8f2f2c0e82b07
MD5 b738486d6257709ef958a806aa1b114a
BLAKE2b-256 0c8062b9b70c61d9eb63e3d7372fe4fda8f20e6dcdfc8a6a57c36cdd2e7c7381

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page