chainanalyzer-mcp
chainanalyzer-mcp
ChainAnalyzer 的 MCP 服务器 — 为 AI 智能体提供多链区块链 AML(反洗钱)风险分析。
扫描比特币、以太坊、Polygon、Avalanche 和 Solana 上的任何地址,以检测制裁违规、洗钱模式、Rug Pull(拉地毯)、钱包盗取等行为。包含 76+ 种检测规则、机器学习异常评分以及 Neo4j 图分析。
工具
工具 | 描述 | 价格 |
| 任何区块链地址的 AML 风险评分 | $0.008 |
| OFAC / FATF / JFSA 制裁筛查 | $0.003 |
| 带有机器学习异常检测的交易流追踪 | $0.015 |
| CoinJoin / 混币模式检测(比特币) | $0.01 |
| 通过 Neo4j 图分析进行钱包聚类 | $0.02 |
| 批量 AML 筛查(最多 50 个地址) | $0.05 |
Related MCP server: sliverc2-mcp
快速开始
Claude Desktop / Claude Code
添加到您的 MCP 配置中:
{
"mcpServers": {
"chainanalyzer-aml": {
"command": "npx",
"args": ["-y", "chainanalyzer-mcp"],
"env": {
"CHAINANALYZER_API_KEY": "tfk_your_api_key"
}
}
}
}从源码构建
git clone https://github.com/rascal-3/chainanalyzer-mcp.git
cd chainanalyzer-mcp
npm install
npm start身份验证
选择以下三种模式之一:
1. API Key(订阅制)
从 chain-analyzer.com 获取 tfk_ API 密钥(Pro 计划)。
{
"env": {
"CHAINANALYZER_API_KEY": "tfk_your_api_key"
}
}2. x402 USDC 支付(按请求付费)
无需账户。在 Base 或 Solana 上按请求使用 USDC 支付。
{
"env": {
"X402_PRIVATE_KEY": "your_wallet_private_key",
"X402_NETWORK": "base"
}
}需要 x402 npm 包:npm install x402
3. 开发模式
无需身份验证。当 ChainAnalyzer 服务器设置 X402_ENABLED=false 时有效。
{
"env": {
"CHAINANALYZER_BASE_URL": "http://localhost:3000"
}
}环境变量
变量 | 描述 | 必需 |
|
| API 密钥或 x402 二选一 |
| 用于 USDC 支付的钱包私钥 | API 密钥或 x402 二选一 |
| 支付网络: | 否 |
| API 基础 URL(默认: | 否 |
使用示例
配置完成后,您可以询问您的 AI 智能体:
“检查此以太坊地址是否受到制裁:0x1234...”
“分析此 Solana 钱包的风险评分:ABC123...”
“追踪此比特币交易的资金流向并检查是否存在混币模式”
“筛查这 20 个地址的 AML 合规性”
智能体将自动调用相应的 ChainAnalyzer 工具。
支持的链
比特币 — OFAC 筛查、粉尘攻击、剥离链(peel chains)、CoinJoin 检测
以太坊 — 18+ 种检测器、Neo4j 图分析、制裁、混币器
Polygon — 完整的 EVM AML 套件,兼容 Etherscan V2
Avalanche — 完整的 EVM AML 套件,Routescan API
Solana — 代币安全(Rug Pull、蜜罐)、钱包盗取检测
链接
ChainAnalyzer — Web 平台
文档 — API 参考
x402 协议 — 按请求付费标准
许可证
MIT - 参见 LICENSE
由 refinancier, inc. 构建
Available Tools
6 toolsbatch_screeningA
Batch AML screening for multiple addresses at once (up to 50). Returns risk level and score per address.
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | Addresses to screen | |
| chain | No | Chain hint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses that the tool is for batch screening and returns risk level and score per address, but does not mention any side effects, security implications, or performance characteristics (e.g., rate limits).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, one sentence with key information. It is front-loaded with the purpose. It could be slightly improved by adding a brief note about the chain parameter or when to use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (two parameters, no output schema), the description adequately explains what it does and its output. However, it could mention the meaning of the risk level or score, or that the chain parameter is optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters ('addresses' and 'chain'). The description adds that addresses are multiple (up to 50) and that the output is per address, which enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: batch AML screening for multiple addresses. It specifies the action (screening), resource (addresses), and output (risk level and score per address). This distinguishes it from siblings like check_address_risk which likely screens single addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the batch nature and a limit of 50 addresses, implying it's for screening multiple addresses at once. However, it does not explicitly state when to use it versus alternatives like check_address_risk or sanctions_check, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_address_riskA
Get AML risk score for any blockchain address. Returns risk level, score (0-100), detections, and ML anomaly score. Supports BTC, ETH, POL, AVAX, SOL.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Blockchain address to analyze | |
| chain | No | Chain (auto-detected if omitted) | |
| lang | No | Language (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'returns risk level, score (0-100), detections, and ML anomaly score', which adds some behavioral context. However, it does not disclose potential traits like rate limits, data freshness, or reliance on external APIs, which would be important for an AML tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the purpose. Every sentence adds information, with no wasted words. Could briefly mention that chain is auto-detected, but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the small number of parameters and no output schema, the description is fairly complete. It explains the purpose, inputs, and output contents. Could add more behavioral context (e.g., data source) but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond what the schema already states. It mentions 'Supports BTC, ETH, POL, AVAX, SOL' which matches the chain enum, and 'auto-detected if omitted' adds minor value. The description does not elaborate on the address format or language options beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb+resource ('Get AML risk score for any blockchain address') and lists specific outputs (risk level, score, detections, ML anomaly score). It also names supported chains, distinguishing it from sibling tools like sanctions_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (for AML risk assessment), but provides no explicit guidance on when not to use it or alternatives. The sibling tools (e.g., sanctions_check, batch_screening) could be compared, but no such advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cluster_walletA
Identify related addresses through Neo4j graph clustering. Returns cluster size and related addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Starting address for cluster analysis | |
| depth | No | Graph depth (default: 2) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions returns cluster size and related addresses, which adds behavioral context. However, no annotations are provided, so the description carries full burden; it does not disclose potential side effects, computational cost, or rate limits, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no wasted words. Perfectly concise for the information needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema and no output schema, the description adequately explains purpose and output (cluster size and related addresses). Could optionally mention if depth is traversed forward/backward, but still complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already clear from schema. The description does not add extra meaning beyond the schema; baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies related addresses through graph clustering, differentiating it from siblings like check_address_risk, batch_screening, or trace_transaction. The verb 'identify' and resource 'related addresses' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for exploring address connections, and context from sibling names (e.g., risk checks, coinjoin detection) helps distinguish use cases. However, it does not explicitly state when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_coinjoinB
Detect CoinJoin, mixing, and tumbling patterns in a Bitcoin transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | Bitcoin transaction hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It fails to mention if the analysis is heuristic-based, requires memory, or has limitations (e.g., false positives). The description is too brief about internal behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence, front-loaded with the core purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool, the description is adequate but lacks behavioral details that would be helpful given no output schema or annotations. The agent may not know what the output looks like or what constitutes a detection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (tx_hash described), but the description adds no additional meaning beyond the schema's own description. The description repeats 'Bitcoin transaction' which is already implied by the parameter name. Baseline 3 applies since coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Detect') and identifies the resource ('a Bitcoin transaction') and specific patterns ('CoinJoin, mixing, and tumbling patterns'). It clearly distinguishes from siblings like 'batch_screening' or 'trace_transaction' by focusing on privacy-enhancing patterns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'trace_transaction' or 'check_address_risk'. The description does not mention any context such as prerequisites, transaction types, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_checkB
Screen address against OFAC, FATF, JFSA, and ChainAnalyzer ScamDB sanctions lists.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Blockchain address to screen | |
| chain | No | Chain (auto-detected if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior, but it does not mention side effects, auth requirements, rate limits, or whether results are cached. The tool likely performs external API calls, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It front-loads the key information (what lists are screened) and uses concise language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 parameters with full schema coverage, no output schema, and no annotations. The description explains the screening scope but does not mention return format, false positive handling, or update frequency of lists. For a compliance tool, more detail on reliability would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so baseline is 3. The description adds value by listing the specific sanctions lists used, which helps agents understand the screening scope beyond the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool screens blockchain addresses against specific sanctions lists (OFAC, FATF, JFSA, ChainAnalyzer ScamDB), providing a specific verb (screen) and resource (address against sanctions lists). It distinguishes from siblings like batch_screening (batch) and check_address_risk (general risk) by specifying the precise lists used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for sanctions compliance screening but does not explicitly state when to use this tool versus alternatives like batch_screening for multiple addresses or check_address_risk for broader risk. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_transactionB
Trace fund flows for a transaction with ML anomaly detection. Returns graph of addresses and transfers.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | Transaction hash to trace | |
| chain | No | Blockchain network | |
| depth | No | Trace depth (default: 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions ML anomaly detection but does not disclose behavioral traits such as data requirements, rate limits, whether it modifies data, or what the graph output includes. The description is vague on these aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, no wasted words. It front-loads the key action. However, it could be slightly more structured to include guidelines or behavioral notes without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema, the description provides minimal context about the output (returns graph of addresses and transfers). It does not explain the structure of the graph or how anomaly detection influences results. Complete but lacking detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions, so baseline is 3. The description does not add extra meaning beyond the schema, and does not explain default depth or how the parameters relate to the graph output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool traces fund flows for a transaction with ML anomaly detection, and returns a graph of addresses and transfers. This distinctively specifies what the tool does and its output, but could differentiate more from sibling tools like detect_coinjoin or cluster_wallet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for tracing transactions with anomaly detection, but provides no explicit guidance on when to use this tool over siblings like check_address_risk or batch_screening. No alternative tools or when-not-to-use scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.1.1- First observed
batch_screening - First observed
check_address_risk - First observed
cluster_wallet - First observed
detect_coinjoin - First observed
sanctions_check - First observed
trace_transaction
TDQS
Scored across 6 tools
Each tool targets a distinct blockchain analysis function: screening (batch vs single address), clustering, mixing detection, sanctions checking, and transaction tracing. No overlap in purpose.
Tools use a consistent verb_noun pattern (e.g., batch_screening, check_address_risk, detect_coinjoin) with one exception: 'cluster_wallet' uses verb_noun but 'wallet' is a bit broader. Overall, naming is clear and predictable.
With 6 tools, the server covers core AML and blockchain analysis functions succinctly without being too sparse or overly numerous.
The tool set covers screening (batch & single), risk scoring, clustering, mixing detection, sanctions, and tracing. A minor gap is the lack of a tool for getting raw transaction data or address history, but the main analysis workflows are complete.
Maintenance
Related MCP Connectors
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that integrates with the BlockSec https://blocksec.com platform to provide blockchain transaction analysis.11MIT
- MIT
- AlicenseAqualityCmaintenanceThe first MCP Server dedicated to Bitcoin ecosystem236MIT
- AGPL 3.0