Skip to main content
Glama
tornado-cash-mcp

tornado-cash-mcp

by kukapay

Tornado Cash MCP

An MCP server that tracks Tornado Cash deposits and withdrawals to reveal hidden asset trails and wallet interactions.

GitHub License Python Version Status

Features

  • Query Latest Deposits: Retrieve the most recent deposit events with details including sender address (from), amount, block number, timestamp, and commitment.

  • Query Latest Withdrawals: Fetch the latest withdrawal events with details including recipient address (to), amount, block number, and timestamp.

Related MCP server: phalcon-mcp

Prerequisites

  • Python 3.10+

  • uv (recommended package manager)

  • A valid The Graph API key for accessing the Tornado Cash Subgraph

Installation

  1. Clone the repository:

    git clone https://github.com/kukapay/tornado-cash-mcp.git
    cd tornado-cash-mcp
  2. install dependencies using uv:

    uv sync
  3. Installing to Claude Desktop:

    Install the server as a Claude Desktop application:

    uv run mcp install main.py --name "tornado-cash-mcp"

    Configuration file as a reference:

    {
       "mcpServers": {
           "Tornado Cash": {
               "command": "uv",
               "args": [ "--directory", "/path/to/tornado-cash-mcp", "run", "main.py" ],
               "env": { "THEGRAPH_API_KEY": "the_graph_api_key"}               
           }
       }
    }

    Replace /path/to/tornado-cash-mcp with your actual installation path, and the_graph_api_key with your API key from The Graph.

Tools

Use the MCP Inspector UI or integrate with a compatible client (e.g., Claude Desktop) to call the tools.

Query Latest Deposits

Example prompt:

"Show me the latest 3 deposits from Tornado Cash."

Example output:

+------------+---------------+--------------+---------------------+--------------+
| from       | amount        | blockNumber  | time                | commitment   |
+============+===============+==============+=====================+==============+
| 0xdef...   |           0.1 | 12345678     | 2023-10-12 15:30:00 | 0xabc...     |
| 0xdee...   |             1 | 12345677     | 2023-10-12 15:28:20 | 0xabd...     |
| 0xdef...   |            10 | 12345676     | 2023-10-12 15:26:40 | 0xabe...     |
+------------+---------------+--------------+---------------------+--------------+

Query Latest Withdrawals

Example prompt:

"Get the most recent 2 withdrawals from Tornado Cash."

Example output:

+------------+---------------+--------------+---------------------+
| to         | amount        | blockNumber  | time                |
+============+===============+==============+=====================+
| 0x789...   |             1 | 12345679     | 2023-10-13 14:40:00 |
| 0x78a...   |           100 | 12345678     | 2023-10-13 14:38:20 |
+------------+---------------+--------------+---------------------+

License

This project is licensed under the MIT License. See LICENSE for details.

Available Tools

2 tools
query_latest_depositsA
Query the most recent deposits from Tornado Cash Subgraph and return results as a formatted table.

Parameters:
    limits (int): The maximum number of deposit records to return. Must be positive. Default is 10.

Returns:
    A string containing a tabulated representation of deposit records with columns: id, amount, timestamp, commitment, blockNumber, from.

Inputs: limits.

query_latest_withdrawalsB
Query the most recent withdrawals from Tornado Cash Subgraph and return results as a formatted table.

Parameters:
    limits (int): The maximum number of withdrawal records to return. Must be positive. Default is 10.

Returns:
    A string containing a tabulated representation of withdrawal records with columns: id, amount, timestamp, to, blockNumber.

Inputs: limits.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools have clearly distinct purposes: one queries deposits and the other queries withdrawals. There is no overlap or ambiguity between them, as each targets a different transaction type within the Tornado Cash domain.

    Naming Consistency5/5

    Both tools follow a consistent verb_noun pattern with 'query_latest_' prefix followed by the transaction type. This predictable naming scheme makes it easy to understand what each tool does at a glance.

    Tool Count2/5

    With only 2 tools, this server feels significantly under-scoped for a Tornado Cash integration. While deposits and withdrawals are core operations, a complete MCP server for this domain would typically include tools for other operations like querying specific transactions, getting pool statistics, or interacting with smart contracts.

    Completeness2/5

    The tool surface is severely incomplete for a Tornado Cash server. While it covers basic querying of deposits and withdrawals, there are significant gaps including: no ability to query specific transactions by ID, no tools for interacting with pools or contracts, no filtering capabilities beyond simple limits, and no write operations that might be expected in a privacy tool integration.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers