Skip to main content
Glama
traql

traql MCP server

Official

traql MCP server

npm CI License: MIT

为加密货币地址和交易提供 AML 与合规风险评分,并通过 Model Context Protocol 开放给 AI 智能体使用。

向你的智能体询问 “发送到这个地址安全吗?”,它会返回一个 0–100 的风险评分、一个风险档、其背后的风险类别;并且,在配有 API 密钥的情况下,还会返回每一个独立信号及其来源和置信度。

ethereum address 0x8589427373d6d84e98730d7795d8f6f8731fda16
RISK 100/100 — CRITICAL
Flags: sanctions, mixer, scam

Signals (21):
  +80  [sanctions/eth_labels] direct.sanctions — sanctions label "Tornado.Cash: Donate" [entity Tornado.Cash: Donate, confidence 0.80]
  +68  [mixer/eth_labels] direct.mixer — mixer label "Tornado.Cash: Donate" [entity Tornado.Cash: Donate, confidence 0.80]
  +10  [mixer] behavior.mixer_contact — direct contact with mixer 0xdd4c48c0b24039969fc16d1cdf626eab821d3384
  +9   [sanctions/ofac_sdn] indirect.sanctions — sent to Semenov Roman (sanctions, 18% of USDC volume) [entity Semenov Roman, confidence 1.00]
  ... and 17 more

Computed at 2026-08-23T11:42:49Z.

由 traql 提供数据支持:OFAC SDN、UK OFSI、欧盟和联合国制裁名单,Tether/Circle 冻结事件,人工整理的黑客与混币器归因,以及跨 Ethereum、BSC、TRON、TON 和 Bitcoin 的交易对手风险分析。

快速开始

需要 Node.js 18+。

npx -y @traql/mcp

服务器通过 stdio 使用 MCP 协议,因此通常将客户端指向它,而不是手动运行。

Claude Code

claude mcp add traql --env TRAQL_API_KEY=your_key -- npx -y @traql/mcp

Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "traql": {
      "command": "npx",
      "args": ["-y", "@traql/mcp"],
      "env": { "TRAQL_API_KEY": "your_key" }
    }
  }
}

Cursor

添加到 ~/.cursor/mcp.json(或项目内的 .cursor/mcp.json),使用与上面相同的 mcpServers 配置块即可。

VS Code

添加到 .vscode/mcp.json:

{
  "servers": {
    "traql": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@traql/mcp"],
      "env": { "TRAQL_API_KEY": "your_key" }
    }
  }
}

Related MCP server: zarq-risk-intelligence

获取 API 密钥

在 app.traql.io 注册,确认你的邮箱(包含免费检查次数),然后在 API keys 下签发一个密钥。密钥只显示一次;你可以随时轮换或撤销它。

如果没有密钥,服务器仍然可以运行,但会处于无密钥模式:只返回一个粗略的原因短语,而非逐项信号;速率限制很严格;若使用托管 API,还需为每次调用满足 x402 支付要求。供智能体使用时,请设置一个密钥。

配置

变量

是否必需

默认值

说明

TRAQL_API_KEY

推荐

—

来自 traql 仪表盘的 API 密钥。以 X-API-Key 发送。解锁逐项信号和更高的调用限额。

TRAQL_API_URL

否

https://api.traql.io

API 的基础 URL。自托管 traql 时,可指向你自己的部署。

TRAQL_TIMEOUT_MS

否

30000

每次请求的超时时间(毫秒)。

工具

check_address

对单个地址进行评分。

参数

类型

是否必需

说明

chain

ethereum | bsc | tron | ton | bitcoin

是

地址所属的网络。

address

string

是

该链原生格式的地址。

screen_transaction

对转账双方进行评分,支持以下两种模式之一:

  • Pre-flight(发送前) — 在广播转账前,传入 from 和 to(可选 amount 和 asset)进行筛查。适用于所有受支持的链。

  • By hash(按哈希) — 仅传入 tx_hash,即可查询已在链上的交易。适用于 Ethereum、BSC、TRON 和 TON。

参数

类型

是否必需

说明

chain

链枚举

是

交易所属的网络。

from

string

发送前模式必选

发送方地址。

to

string

发送前模式必选

接收方地址。

amount

string

否

以资产计划中基础单位值为单位的整数金额(例如,1 USDT 为 1000000)。

asset

string

否

资产或代币符号,例如 USDT。

tx_hash

string

按哈希模式必选

已广播交易的哈希值。与 from/to 互斥。

响应

两个工具都会返回人类可读的文本以及 structuredContent:

{
  "subject": { "type": "address", "chain": "ethereum", "address": "0x…" },
  "result": {
    "score": 100,
    "band": "critical",
    "flags": ["sanctions", "mixer", "scam"],
    "partial": false,
    "computed_at": "2026-08-23T11:42:49Z",
    "reasons": [
      {
        "code": "direct.sanctions",
        "message": "sanctions label \"Tornado.Cash: Donate\" from eth_labels (severity 100 × confidence 0.80 = 80.0)",
        "contribution": 80,
        "category": "sanctions",
        "source": "eth_labels",
        "entity": "Tornado.Cash: Donate",
        "severity": 100,
        "confidence": 0.8,
        "eff": 80.0
      }
    ]
  }
}

评分区间:clean 0–9,low 10–39,elevated 40–69,high 70–89,critical 90–100。

partial: true 表示在计算结果时,某个上游数据源发生了降级;此时应将评分视为下限,而不是最终结论。

每次成功调用都会消耗已配置账户中的一次额度。无法入的输入会尽可能在本地被拒绝,因此不会产生费用。

开发

npm install
npm run build
npm test

说明

评分是用于分流和自动化的参考信号。它们不构成对不当行为的法律认定,也不能独自免除任何监管义务。

链接

License

MIT

Available Tools

2 tools
check_addressCheck address riskA
Read-only

Score a single crypto address for AML and compliance risk.

Returns a risk score from 0 (clean) to 100 (critical), the band it falls into, and the risk categories that drove it — sanctions, mixer, scam, darknet, stolen_funds, ransomware, high_risk_exchange and others. With an API key configured, the response also itemizes every contributing signal with its data source, severity and confidence, so the verdict can be explained rather than just asserted.

Use it before sending funds to an unfamiliar address, to triage an address a user pasted, to check a counterparty in an investigation, or to vet a deposit address. Covers Ethereum, BSC, TRON, TON and Bitcoin. Each call consumes one check from the configured traql account.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesBlockchain network the subject belongs to.
addressYesAddress in the chain's native format: 0x-hex for ethereum and bsc, base58 starting with T for tron, EQ/UQ for ton, and legacy or bech32 for bitcoin.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
subjectYesEcho of the canonical subject that was scored.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and non-destructive, and the description adds meaningful behavioral detail beyond that: the exact return semantics (risk score 0-100, bands, categories), conditional verbosity with an API key, and the resource cost ('Each call consumes one check'). It doesn't contradict annotations, and the additional consumption caveat is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and returns, then use cases, then chains and consumption. It is concise at four sentences, with no fluff. It could be slightly tighter (the chain list is redundant with the schema enum), but it remains efficiently structured and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description need not detail return types, but it still explains the risk score range, band concept, and categories. It also covers supported chains, use cases, and the API-key enhancement. Everything an agent needs to invoke and interpret the result is present, so it is fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for both parameters (chain enum and address format), so the baseline is 3. The description adds no extra parameter semantics—it only references the chain coverage implicitly, which the schema already communicates. No additional meaning is introduced beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a clear verb-resource pair ('Score a single crypto address for AML and compliance risk') that precisely states the tool's function. It also differentiates from the sibling tool screen_transaction by focusing on address-level vetting rather than transaction screening.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists concrete use cases ('before sending funds', 'triage a pasted address', 'vet a deposit address'), giving clear context for when to use it. It does not explicitly exclude transaction screening, but the single sibling tool makes the distinction evident; mentioning that tool as an alternative would make this a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screen_transactionScreen transaction riskA
Read-only

Screen a transaction for AML and compliance risk by scoring both sides of the transfer.

Two modes, chosen by which arguments are given:

  • Pre-flight — pass from and to (optionally amount and asset) to screen a transfer before it is broadcast. Works on every supported chain.

  • By hash — pass only tx_hash to look up a transaction that is already on-chain. Supported on ethereum, bsc, tron and ton.

Returns the same score, band, flags and itemized signals as an address check, with each signal marked as applying to the sending or receiving side. Use it as a pre-send safety gate, or to review a payment that already went out. Each call consumes one check from the configured traql account.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoRecipient address, for screening a transfer that has not been broadcast yet.
fromNoSender address, for screening a transfer that has not been broadcast yet.
assetNoOptional asset or token symbol being transferred, for example USDT.
chainYesBlockchain network the subject belongs to.
amountNoOptional transfer amount as an integer string in the asset's base units (for example 1000000 for 1 USDT, which has 6 decimals). Never a decimal fraction.
tx_hashNoHash of an already-broadcast transaction. Mutually exclusive with `from`/`to`. Supported on ethereum, bsc, tron and ton only.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
subjectYesEcho of the canonical subject that was scored.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context beyond annotations: 'Each call consumes one check from the configured traql account' (a quota side effect) and describes the return structure ('score, band, flags and itemized signals'). This is consistent with annotations and provides useful operational detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a clear opening statement followed by a bulleted breakdown of modes. The information is front-loaded and each sentence serves a purpose—no filler or redundancy. It is slightly long but contains only necessary details, earning a 4 rather than 5 due to the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two modes, six parameters, chain restrictions, and an existing output schema), the description covers all essential usage context: modes, which chains support which mode, use cases, and the quota side effect. Nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the two modes and how parameters relate (pre-flight: from/to, optional amount/asset; by-hash: tx_hash only, mutually exclusive). It also gives an example for the amount format, reinforcing the schema description. This is helpful clarification beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb+resource: 'Screen a transaction for AML and compliance risk by scoring both sides.' It explicitly differentiates from the sibling address-check tool by focusing on transactions and even references the shared return format ('same score, band, flags and itemized signals as an address check'). This leaves no ambiguity about what the tool does and how it differs from check_address.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use it: 'Use it as a pre-send safety gate, or to review a payment that already went out.' It also details two explicit modes with the exact parameters to pass ('pass from and to...' vs 'pass only tx_hash') and lists chain support for each. While it doesn't explicitly name check_address as an alternative, the mention of 'same... as an address check' implies routing, so guidance is strong but not exhaustive.

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.

  1. 2 tool updatesv0.1.0
    • First observedcheck_address
    • First observedscreen_transaction

TDQS

A4.4/5.0

Scored across 2 tools

Disambiguation5/5

The two tools target distinctly different entities: check_address evaluates a single address, while screen_transaction evaluates a transaction by scoring both sides. They are clearly separated by purpose and input requirements, with no overlapping functionality.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern: check_address and screen_transaction. The verbs ('check' vs 'screen') are semantically appropriate and the noun targets (address, transaction) are clear, maintaining a uniform naming style.

Tool Count4/5

With only two tools, the server is compact but well-scoped for its narrow AML screening purpose. Each tool covers a fundamental operation (address check and transaction screening), so the count feels appropriate rather than insufficient, though it is below the typical 3-15 range.

Completeness4/5

The tool surface covers the primary use cases for AML risk assessment: pre-transaction screening and single-address checks. Minor gaps exist, such as lack of batch processing or historical investigation features, but these are not essential for the stated purpose and do not create dead ends in common workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides blockchain address risk scoring and asset information through the BICScan API, allowing users to assess risks for crypto addresses, domains, and dApps on a scale of 0-100.
    2
    16
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access real-time crypto risk intelligence with two tools: Flare for precursor detection and Core for overall risk environment assessment.
    4
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Crypto compliance tools for AI-agent payments: screen any address for sanctions, frozen-stablecoin and hacker/mixer exposure across 8+ chains, trace fund taint, and get an allow/review/decline decision before settlement. Free keyless address checks; deeper endpoints are x402-payable.
    314 npm
    MIT