infinihash-kyt-mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@infinihash-kyt-mcpScreen wallet 0x722122dF12D4e14e13Ac3b6895a86e84145b6967 — is it sanctioned?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
infinihash-kyt-mcp
MCP server for Infinihash KYT — real-time blockchain transaction monitoring, sanctions screening, and SAR generation as MCP tools.
Gives any MCP-compatible agent (Claude Desktop, Cursor, Cline, automation pipelines) access to:
kyt_screen_wallet— screen a wallet against OFAC SDN + 18.8K+ risk labels in under 200mskyt_lookup_intel— get known intel tags for an address (no full screen)kyt_recent_screenings— what your org has been screeningkyt_create_case— open a compliance case from a risky screeningkyt_list_cases— list open / SAR-pending / closed caseskyt_get_case— fetch one case with evidence noteskyt_add_case_note— append investigation notes to the audit trailkyt_generate_sar— render a FinCEN-aligned SAR draftkyt_stats— coverage stats (per-source breakdown)kyt_health— backend health probe
Install
uvx infinihash-kyt-mcpOr:
pip install infinihash-kyt-mcpRelated MCP server: opensanctions-mcp
Get an API key
Free tier — 100 screenings/month, no credit card required, key live in <60 seconds:
→ https://kyt.infinihash.com/kyt/settings/api-keys
Claude Desktop config
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"infinihash-kyt": {
"command": "uvx",
"args": ["infinihash-kyt-mcp"],
"env": {
"KYT_API_KEY": "kyt_your_key_here"
}
}
}
}Cursor / Cline
Same JSON, different file. See the docs.
Example prompts after install
Screen wallet 0x722122dF12D4e14e13Ac3b6895a86e84145b6967 — is it sanctioned?
Open a case for the Tornado Cash address I just screened.
Generate a SAR draft for case <id> and email me a summary of what to include.
What labels do we have on 0x... — quick check, no full screen.Why KYT over alternatives
Published pricing — no "contact sales" — Free $0, Starter $49/mo (500 screenings), Pro $199/mo (3,000 screenings)
Source transparency — every label tiered (T1 OFAC, T2 threat intel, T3 on-chain, T4 community) and source-attributed at /trust
Self-serve in minutes — API key in under a minute, no procurement cycle
Sub-200ms screens — fast-path cache returns sanctioned wallets in milliseconds
Compare honestly vs TRM Labs + Chainalysis Reactor Lite: https://kyt.infinihash.com/kyt/compare
Compliance note
KYT is a decision-support tool, not a SAR filing service. Your organisation remains solely responsible for SAR submissions via the BSA E-Filing System and for all regulatory determinations.
Links
API docs: https://kyt.infinihash.com/docs
Trust Center: https://kyt.infinihash.com/kyt/trust
Support: mailto:support@infinihash.com
MIT licensed.
Available Tools
10 toolskyt_add_case_noteAInspect
Append an investigation note to a case. Notes are timestamped, attributed, and form part of the audit trail you'd hand to a regulator. Use this to document transaction hashes, counterparty findings, or analyst rationale.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Free-form investigation note. | |
| case_id | Yes | Case UUID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that notes are timestamped, attributed, and form part of an audit trail for regulators, which is useful behavioral context. However, it doesn't mention whether notes can be edited or deleted, whether appending is the only operation, or any permission requirements. The audit-trail statement implies immutability but doesn't state it explicitly.
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?
Three sentences with no waste. The core action is front-loaded, and the use-case examples are packed into the final sentence. Every sentence earns its place.
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 two-parameter append tool, the description is nearly complete. It explains the audit-trail significance, which is the key non-obvious context. It doesn't describe the return value, but there's no output schema and the operation is simple enough that an agent can infer success from a standard response. The only minor gap is not stating whether notes are immutable.
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 the schema already documents both parameters. The description adds context about what the note should contain (transaction hashes, counterparty findings, analyst rationale) but doesn't add syntax or format details beyond the schema. Baseline 3 is appropriate.
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 states a specific verb ('Append'), a resource ('investigation note to a case'), and the purpose ('document transaction hashes, counterparty findings, or analyst rationale'). It clearly distinguishes from siblings like kyt_create_case or kyt_get_case, which operate on cases at a different level.
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 gives clear context for when to use the tool: to document investigation findings, transaction hashes, or analyst rationale. It doesn't explicitly name alternatives or state when not to use it, but the use cases are specific enough that an agent can infer the right context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_create_caseAInspect
Open a compliance case from a flagged screening. A case bundles evidence, notes, and the audit trail you'll need if you escalate to a SAR. Pass the address that triggered the alert; the case is opened under your org with status='open' and tied to the most recent screening of that address.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain code (e.g. ethereum, bitcoin, tron). | |
| notes | No | Optional initial note describing why the case was opened. | |
| address | Yes | Address that triggered the case. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It discloses that the case is opened with status='open' and linked to the most recent screening, and mentions bundling of evidence, notes, and audit trail. However, it does not state potential side effects (e.g., whether the screening is marked as resolved), permissions required, or reversibility. This is moderate disclosure but lacks depth for a mutating 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 with zero fluff. The primary purpose and key behavioral detail (tied to most recent screening) are front-loaded, followed by the required parameter. Every sentence earns its place.
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?
There is no output schema, so the description should explain what the tool returns. It does not mention the response format, such as whether a case ID is returned or how to retrieve the created case. It also omits error conditions and any prerequisites (e.g., that a screening must exist). For a creation tool with no output schema, this is a significant gap.
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 the schema already documents all three parameters. The description adds specific meaning for the 'address' parameter by linking it to the trigger and the most recent screening, which goes slightly beyond the schema. For 'chain' and 'notes', no additional semantics are added, so the value is marginal. Baseline of 3 is appropriate.
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 verb (open), the resource (compliance case), and the specific context (from a flagged screening). It also describes what a case bundles (evidence, notes, audit trail) and distinguishes it from sibling tools like kyt_screen_wallet and kyt_get_case by focusing on the creation action.
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 provides clear context on when to use the tool: after a flagged screening, passing the address that triggered the alert. It also specifies the behavior (opens under your org, status='open', tied to most recent screening). However, it does not explicitly mention alternatives or when not to use it, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_generate_sarAInspect
Generate a FinCEN-aligned Suspicious Activity Report draft for a case. Returns the SAR as plain text ready for review and submission via the BSA E-Filing System. Compliance Officer remains responsible for review + filing — this is decision-support, not auto-filing.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | Case UUID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that the tool returns plain text, is for review, and explicitly notes it is decision-support, not auto-filing, which clarifies side effects and responsibility. This is valuable context beyond the schema.
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, front-loaded with the core action and output, and the second sentence adds a critical responsibility caveat. Every word contributes value; there is no redundancy or filler.
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 tool with one parameter and no output schema, the description adequately explains the output format (plain text), its purpose, and the compliance responsibility. It does not detail error handling or invalid inputs, but these are minor for such a straightforward generation tool.
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 schema covers 100% of the parameter (case_id) with a description, and the tool description only restates 'for a case' without adding new meaning. The baseline of 3 is appropriate since the schema already documents the parameter adequately.
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 verb 'Generate', the resource 'Suspicious Activity Report draft for a case', and adds specificity with 'FinCEN-aligned' and 'BSA E-Filing System'. It is unambiguous and easily distinguished from sibling tools like kyt_screen_wallet or kyt_lookup_intel, which serve different purposes.
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 generating SAR drafts but does not explicitly state when to use it versus alternatives, nor does it mention exclusions or prerequisites. While the purpose is clear, there is no guidance on when not to use it or what distinguishes it from other case-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_get_caseAInspect
Fetch a single case by ID, including evidence notes and screening linkage.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | Case UUID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. 'Fetch' signals a read operation and the phrase 'including evidence notes and screening linkage' discloses response content, but it does not explicitly state that the operation is side-effect-free or describe not-found/error 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?
The description is a single, front-loaded sentence with no filler. The core action and resource appear first, and the additional content detail is appended without redundancy.
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 one-parameter read operation with no output schema, the description is nearly complete: it names the input key, the resource, and key return content. It loses one point because it does not provide any explicit guidance on what happens when the case ID does not exist or how to handle the screening-linkage field.
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%, and the single parameter case_id is already documented as 'Case UUID.' The description adds no new semantic detail about the parameter 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 uses a specific verb ('Fetch'), names the resource ('a single case'), scopes it by 'ID', and even previews contents ('evidence notes and screening linkage'). This clearly differentiates it from siblings like kyt_list_cases and kyt_create_case.
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 use case is implied: use this when you have a case UUID and need the full case record. However, it does not explicitly state when to prefer this over alternatives, such as using kyt_list_cases to find IDs first or kyt_recent_screenings for screening-focused results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_healthAInspect
Backend health probe. Returns 'ok' when the KYT screening engine is responsive.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states the success case (returns 'ok' when responsive) but does not specify what happens when the engine is not responsive—whether it returns an error, throws, or returns a different status. This is a significant gap for a health probe.
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, concise sentence that front-loads the purpose. It contains no extraneous information and is appropriately sized for the tool's simplicity.
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 description is incomplete for a health probe because it only covers the healthy response and omits failure behavior. Without an output schema, the description should specify possible return values or error semantics, but it does not. This is a clear gap given the tool's purpose.
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 tool has zero parameters, so the schema is trivially complete. The description does not need to add parameter details. Baseline for 0 params is 4, and there is no issue here.
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 it is a backend health probe that returns 'ok' when the engine is responsive. This is a specific, unambiguous purpose that distinguishes it from the screening, lookup, and case management siblings, which all perform distinct operations.
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 this tool is for checking service availability, but it does not explicitly state when to use it versus alternatives, nor does it mention any conditions or exclusions. The usage context is implied rather than articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_list_casesAInspect
List your organisation's compliance cases. Filter by status to find cases needing review or escalation. Each case includes id, address, chain, risk level, status, stage, and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50). | |
| status | No | Optional filter: open | sar_pending | closed | all (default all). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses scope (organisation's cases), read-only nature via 'List', and the returned field set. It does not cover pagination, ordering, or authorization, but for a simple list operation the core behavior is transparent.
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 compact sentences with the verb first, followed by use case and output fields. No filler or repetition of schema data.
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 low-complexity list tool with no required params, the description supplies the key invocation context: what it returns and when to filter. The lack of an output schema is mitigated by the explicit field list, though pagination behavior is left implicit in the schema's limit parameter.
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 covers both parameters with descriptions and enum values, so the baseline is 3. The description reinforces the status filter's purpose ('needing review or escalation') but adds no new parameter details 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?
States a clear verb ('List'), resource ('your organisation's compliance cases'), and the available filter dimension. Mentioning included fields distinguishes it from list screenings or single-case tools like kyt_get_case.
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?
Explicitly tells the agent when to use it: to list cases and filter by status for review or escalation. It does not name sibling alternatives or state when not to use it, so it stops short of a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_lookup_intelAInspect
Look up known intelligence labels for an address without running a full screen. Returns tiered labels (T1 OFAC SDN, T2 threat intel, T3 on-chain freezes, T4 community-reviewed) with source attribution. Cheaper than a full screen — use when you only need to know whether an address is known.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Wallet address to look up. |
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 discloses that the tool returns tiered labels (T1-T4) with source attribution, and indicates it is a lightweight lookup rather than a full screen. This conveys the operational behavior (cheap, focused) and the nature of the output, though it does not explicitly state whether it is read-only or mention any side effects.
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. The first sentence states the purpose and primary return; the second adds the tier details and usage context. It is front-loaded, with no redundant information, and every clause contributes to decision-making.
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?
With a simple one-parameter tool and no output schema, the description adequately explains what the tool returns (tiered labels with source attribution) and when to use it. It does not describe error handling, but this is a minor gap given the tool's simplicity. An agent can confidently invoke it based on the provided information.
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%: the only parameter, 'address', is described as 'Wallet address to look up.' The description reinforces this without adding new details about the parameter itself. The baseline of 3 is appropriate because the schema already fully documents the parameter, and the description's context does not provide extra semantic value beyond confirming the purpose.
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 opens with a specific verb ('look up') and resource ('known intelligence labels for an address'), and explicitly distinguishes itself from a 'full screen'. This directly differentiates it from sibling tools like kyt_screen_wallet, so an agent can quickly identify its niche.
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 states a clear usage condition: 'use when you only need to know whether an address is known,' and emphasizes it is 'cheaper than a full screen.' It does not explicitly name the alternative tool, but the context strongly implies kyt_screen_wallet. This is sufficient guidance for selecting between them, though a sibling mention would have been more explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_recent_screeningsAInspect
List recent screenings performed by your organisation. Useful for catching up on what teammates or automated pipelines have been screening. Returns address, chain, score, risk level, and timestamp per row.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return (default 20, max 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation through the verb 'List' and describes the returned fields, but it does not explicitly state that no side effects occur, how results are ordered, or any access/rate-limit considerations. Adequate but not rich.
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 with no filler. The first states the action and scope, the second gives a practical use case and the output fields, making the description easy to parse and front-loaded.
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 simplicity, the description is nearly complete: it covers purpose, usage context, and return fields. It lacks explicit mention of ordering or time-window semantics beyond 'recent', but for a one-parameter read tool this is a minor gap.
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?
There is only one parameter, limit, and the schema description coverage is 100% (default 20, max 200). The description adds no parameter-specific detail, but since the schema fully documents the parameter, the baseline of 3 is appropriate.
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 a specific verb and resource: 'List recent screenings performed by your organisation.' It clearly distinguishes this tool from siblings like kyt_screen_wallet (performing screenings), kyt_stats (aggregate stats), and kyt_list_cases (case listings). The mention of returned fields further clarifies the tool's scope.
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 gives clear usage context: 'Useful for catching up on what teammates or automated pipelines have been screening.' It does not explicitly name alternatives or when not to use it, but the context is sufficient for an agent to understand the intended scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_screen_walletAInspect
Screen a single wallet address against OFAC SDN, stablecoin freezes, ScamSniffer threat intel, and 18.8K+ community-reviewed labels. Returns a 0-100 risk score, matched signals, exposure breakdown, an AI-generated investigation summary, and a recommended action (clear / review / block). Use this BEFORE settling on-chain — sanctioned wallets are caught in <200ms from the fast-path cache. Chain is auto-detected from the address format.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Optional. Override auto-detection. Values: ETH | BTC | TRX | SOL | POLYGON | BASE | ARB | OP | AVAX | BSC | auto | auto |
| address | Yes | Wallet address. EVM (0x...), Bitcoin (1.../bc1...), Tron (T...), Solana, etc. — chain is auto-detected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full disclosure burden. It discloses the core behavior, return payload, speed, and auto-detection logic. It doesn't mention failure modes, rate limits, or network dependencies, but for a read-only screening tool the disclosed behavior is reasonably transparent.
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 and front-loaded: it states the action, data coverage, and output in the first two sentences, then adds contextual speed guidance. It earns its length, though the enumerated return fields make it slightly dense.
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 there is no output schema)Skip{}... Actually, the tool lacks an output schemaache but important behavioral context. The description covers inputs, outputs, performance, and use-case timing. Missing only explicit comparison to sibling screening/lookup tools, which would make it fully complete.
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 the schema already documents both parameters. The description adds a useful reiteration that chain is auto-detected and lists address formats, but this largely mirrors the schema rather than adding substantial new semantics.
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 a specific verb ('Screen') with a clear resource ('a single wallet address'), enumerates the exact data sources consulted, and states the concrete output (risk score, signals, exposure, summary, recommendation). The tool is easily distinguished from siblings like case management or stats tools.
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?
It gives explicit contextual guidance: 'Use this BEFORE settling on-chain' and highlights the <200ms fast-path cache for sanctioned wallets. However, it doesn't name specific sibling tools or state when to prefer alternatives like kyt_lookup_intel, leaving some selection judgment to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyt_statsAInspect
Return KYT coverage stats: total labeled addresses (~29K+), per-tier breakdown (T1 OFAC, T2 threat intel, T3 on-chain freezes, T4 community), data sources, and update cadence. Useful for compliance documentation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly indicates a read-only stats retrieval by saying it returns coverage statistics and enumerates the type of data returned. It does not mention authentication, rate limits, or response format, but for a simple informational tool the behavioral disclosure is largely sufficient.
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 tightly written sentences deliver the purpose, key output contents, and an explicit use case without wasted words. The most important information is front-loaded with the verb and resource.
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 zero-parameter, low-complexity tool, the description is fairly complete: it identifies the output contents and use case. It does not specify the exact response shape, but with no output schema and no annotations a bit more detail about the returned format would make it fully self-sufficient.
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 zero parametersaine schema coverage is effectively 100%, so the baseline is 4. The description adds no parameter details because none are needed; it appropriately focuses on what the stats contain instead.
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 a specific verb ('Return') with a precise resource ('KYT coverage stats') and lists the concrete contents: total labeled addresses, per-tier breakdown, data sources, and update cadence. This clearly distinguishes it from sibling tools focused on screening, lookups, cases, or health checks.
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 phrase 'Useful for compliance documentation' provides a clear context for when to use this tool. It does not explicitly mention alternatives or exclusions, but the use case is evident enough to guide selection among the sibling tools.
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.
10 tool updates
v0.1.2- First observed
kyt_add_case_note - First observed
kyt_create_case - First observed
kyt_generate_sar - First observed
kyt_get_case - First observed
kyt_health - First observed
kyt_list_cases - First observed
kyt_lookup_intel - First observed
kyt_recent_screenings - First observed
kyt_screen_wallet - First observed
kyt_stats
TDQS
Scored across 10 tools
Each tool targets a distinct operation: screening, intel lookup, case management, reporting, and health checks. The screen vs lookup distinction is explicitly explained, and the case-related tools have clear separate responsibilities.
All tools share the kyt_ prefix and most use a verb_noun pattern like create_case and generate_sar. A few noun-only names (stats, health, recent_screenings) cause minor inconsistency, but the overall pattern remains predictable.
Ten tools is well-scoped for a KYT/compliance workflow covering screening, history, statistics, case management, and SAR generation. No redundant tools dilute the set.
Screening and intelligence lookup are well covered, and case creation/listing/fetching exists. However, the case lifecycle is incomplete: there is no update_case tool for status/stage transitions, which is a notable gap in a compliance workflow.
Maintenance
Related MCP Connectors
Remote MCP server for OFAC screening, EDD memos, exposure forecasts, queues, and reports.
Compliance MCP for AI agents: sanctions & KYT screening on 50+ chains, stablecoin-freeze, oracle.
Crypto transaction firewall and risk tools for MCP agents.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that integrates with the BlockSec https://blocksec.com platform to provide blockchain transaction analysis.11MIT
- AlicenseAqualityDmaintenanceMCP server for sanctions screening and PEP checks via OpenSanctions API. Search entities, match against 320+ sanctions lists, and run compound compliance investigations with AI agents.630 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for OFAC SDN sanctions screening. Check names against US Treasury sanctions lists with automatic cache refresh. No API key needed for the check itself.MIT

yaml-ai-mcpofficial
FlicenseAqualityBmaintenanceAn MCP server for anti-money laundering (AML) compliance, including customer due diligence, transaction monitoring, and SAR filing, compliant with 6AMLD, UK MLR 2017, and FinCEN.421 PyPI-