# io.github.codespar/mcp-konduto (npm · @codespar/mcp-konduto)

MCP server for Konduto — Brazilian fraud prevention: order risk scoring, device intel, lists

- Trust score: 69/100 (medium)
- Change this week: +23
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- npm · `@codespar/mcp-konduto`: 69/100 (this document), [markdown](https://verifymcp.io/servers/codespar-mcp-konduto/codespar-mcp-konduto.md), [page](https://verifymcp.io/servers/codespar-mcp-konduto/codespar-mcp-konduto)

## Channel facts

- Registry: `npm`
- Package: `@codespar/mcp-konduto`
- Version: `0.2.0-alpha.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Supply Chain Security**: 83/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects hono 4.12.33, reached via @modelcontextprotocol/sdk > hono. A fixed version is available.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 42 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 76/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1981 tokens (~110/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add codespar-mcp-konduto -- npx -y @codespar/mcp-konduto
```

### Codex

```bash
codex mcp add codespar-mcp-konduto -- npx -y @codespar/mcp-konduto
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "codespar-mcp-konduto": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@codespar/mcp-konduto"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add codespar-mcp-konduto --command npx --arg -y --arg @codespar/mcp-konduto
```

### Hermes

```yaml
mcp_servers:
  codespar-mcp-konduto:
    command: "npx"
    args: ["-y", "@codespar/mcp-konduto"]
```

### Other

```json
{
  "mcpServers": {
    "codespar-mcp-konduto": {
      "command": "npx",
      "args": [
        "-y",
        "@codespar/mcp-konduto"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 69, +4)

- [security regression] CVE-2026-69207 affects this package: medium
- [security regression] Known CVEs: partial → fail
- [functional improvement] Stability: unverified → 0.30

### 2026-08-02 (score 65, +29)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] MCP protocol: unverified → pass
- [functional] Licence: MIT

### 2026-08-01 (score 36, +8)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 28, +2)

- [security regression] Malware scan: pass → unverified
- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-29 (score 26, −20)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 46)

First indexed and scored.

## MCP tools (18)

### `send_order_for_analysis` (~523 tokens)

Submit an order to Konduto for fraud analysis. Returns a decision (approved / declined / review / not_analyzed), a numeric score, and a recommendation. Include as much signal as possible — billing + shipping, ip, items, payment, and (crucially) the visitor id captured by Konduto's browser JS SDK — to maximize decision quality.

Input parameters:

- `analyze` (boolean): If false, Konduto stores the order without running the ML model. Default true.
- `billing` (object): Billing address: name, address1, address2, city, state, zip, country.
- `currency` (string): ISO-4217 currency code (typically BRL)
- `customer` (object, required): Customer object: id, name, email, tax_id (CPF/CNPJ), phone1, created_at, new_account, vip, etc.
- `event` (object): Event ticketing fields. Omit for non-event orders.
- `hotel` (object): Hotel-specific fields. Omit for non-hotel orders.
- `id` (string, required): Merchant-side order id (must be unique and stable — used to correlate future GETs and status updates)
- `installments` (number, required): Number of installments for card payments (1 for lump sum)
- `ip` (string): Buyer's IP at order time (IPv4 or IPv6)
- `payment` (array): Array of payment methods. Each item: { type: 'credit', bin, last4, expiration_date, status } or { type: 'boleto' | 'pix' | 'debit' }.
- `recurring` (boolean): True for subscription / recurring orders
- `sales_channel` (string): Sales channel identifier (e.g. ecommerce, mobile, marketplace)
- `shipping` (object): Shipping address: name, address1, address2, city, state, zip, country.
- `shipping_amount` (number): Shipping charge in major units
- `shopping_cart` (array): Line items. Each: { sku, product_code, category, name, description, unit_cost, quantity, discount }.
- `tax_amount` (number): Tax amount in major units
- `total_amount` (number, required): Total order amount in major units (e.g. 199.90 BRL)
- `travel` (object): Travel-specific fields (passenger, flights). Omit for non-travel orders.
- `visitor` (string): Visitor id captured by Konduto's browser JS SDK. Strongly recommended — drives the behavioral / device intelligence signal.

### `get_order` (~71 tokens)

Retrieve the current analysis state of an order. Returns decision (approved / declined / review / not_analyzed), numeric score, and recommendation. Useful when the initial response was 'review' or when polling after async re-scoring.

Input parameters:

- `id` (string, required): Merchant-side order id used in send_order_for_analysis

### `update_order_status` (~129 tokens)

Notify Konduto of the merchant's final status for an order. Feeds Konduto's ML model and is required for ongoing decision quality. Common transitions: new → approved, new → declined, approved → canceled, approved → fraud (when a chargeback is confirmed).

Input parameters:

- `comments` (string): Optional free-text comments on the status change
- `id` (string, required): Merchant-side order id
- `status` (string, required): Merchant's final status. Use 'fraud' for confirmed chargebacks — this is the primary feedback signal Konduto's model uses to tune future decisions on similar buyers.

### `report_chargeback` (~102 tokens)

Report a confirmed chargeback for an order. Convenience wrapper around update_order_status with status='fraud' — the primary feedback signal Konduto's ML model uses to retrain on similar buyers. Call this as soon as the chargeback dispute is confirmed (not when first received).

Input parameters:

- `comments` (string): Optional notes (e.g. chargeback reason code, acquirer reference)
- `id` (string, required): Merchant-side order id of the charged-back order

### `report_order_approved` (~93 tokens)

Report that an order was ultimately approved by the merchant. Convenience wrapper around update_order_status with status='approved'. Use after Konduto returned 'review' and a human approved the order, or when the merchant overrode a 'declined' recommendation.

Input parameters:

- `comments` (string): Optional notes on why the order was approved (e.g. manual review outcome)
- `id` (string, required): Merchant-side order id

### `report_order_declined` (~77 tokens)

Report that an order was ultimately declined by the merchant. Convenience wrapper around update_order_status with status='declined'. Use after manual review concluded the order should be rejected, or when the acquirer declined the payment.

Input parameters:

- `comments` (string): Optional notes on the decline reason
- `id` (string, required): Merchant-side order id

### `add_to_blocklist` (~140 tokens)

Add a value to the Konduto blocklist. Any future order matching the value is auto-declined. Useful for known-bad emails, IPs, tax IDs, or card BIN+last4 pairs observed in confirmed fraud.

Input parameters:

- `type` (string, required): Blocklist dimension: email, phone, ip, name, bin_last4 (format 'BIN-LAST4', e.g. '555555-1234'), zip, or tax_id (CPF/CNPJ).
- `value` (string, required): The value to block (e.g. 'fraud@example.com' for email, '555555-1234' for bin_last4)

### `query_blocklist` (~42 tokens)

Check whether a value is currently on the Konduto blocklist.

Input parameters:

- `type` (string, required): Blocklist dimension
- `value` (string, required): Value to query

### `update_blocklist_entry` (~106 tokens)

Update an existing blocklist entry — typically used to extend or shorten the expiration window (expires_at) without removing and re-adding the entry. The (type, value) pair must already exist on the blocklist.

Input parameters:

- `expires_at` (string): ISO-8601 timestamp for new expiration. Omit (or set null) to make the entry permanent.
- `type` (string, required): Blocklist dimension
- `value` (string, required): Existing blocklist value to update

### `remove_from_blocklist` (~40 tokens)

Remove a value from the Konduto blocklist.

Input parameters:

- `type` (string, required): Blocklist dimension
- `value` (string, required): Value to remove

### `add_to_allowlist` (~71 tokens)

Add a value to the Konduto allowlist (trusted). Future orders matching the value are auto-approved without full ML scoring. Use sparingly — allowlist overrides fraud signals.

Input parameters:

- `type` (string, required): Allowlist dimension (same dimensions as blocklist)
- `value` (string, required): Value to trust

### `query_allowlist` (~76 tokens)

Check whether a value is currently on the Konduto allowlist. Konduto's public docs explicitly support email; other dimensions are accepted by symmetry with the blocklist contract but only email is guaranteed.

Input parameters:

- `type` (string, required): Allowlist dimension (use 'email' for guaranteed behavior)
- `value` (string, required): Value to query

### `update_allowlist_entry` (~102 tokens)

Update an existing allowlist entry — typically to extend or shorten the expiration window. Konduto's docs recommend short windows (1-2 days) for allowlist entries since they bypass ML scoring entirely.

Input parameters:

- `expires_at` (string): ISO-8601 timestamp for new expiration. Omit (or set null) to make the entry permanent.
- `type` (string, required): Allowlist dimension
- `value` (string, required): Existing allowlist value to update

### `remove_from_allowlist` (~53 tokens)

Remove a value from the Konduto allowlist. Future orders matching the value will once again undergo full ML scoring.

Input parameters:

- `type` (string, required): Allowlist dimension
- `value` (string, required): Value to remove

### `add_to_reviewlist` (~71 tokens)

Add a value to the Konduto reviewlist. Future orders matching the value are forced into manual review regardless of score. Useful for ambiguous signals that warrant human eyes.

Input parameters:

- `type` (string, required): Reviewlist dimension (same dimensions as blocklist)
- `value` (string, required): Value to force into review

### `query_reviewlist` (~76 tokens)

Check whether a value is currently on the Konduto reviewlist. Konduto's public docs explicitly support email; other dimensions are accepted by symmetry with the blocklist contract but only email is guaranteed.

Input parameters:

- `type` (string, required): Reviewlist dimension (use 'email' for guaranteed behavior)
- `value` (string, required): Value to query

### `update_reviewlist_entry` (~86 tokens)

Update an existing reviewlist entry — typically to extend or shorten the expiration window without removing and re-adding the entry.

Input parameters:

- `expires_at` (string): ISO-8601 timestamp for new expiration. Omit (or set null) to make the entry permanent.
- `type` (string, required): Reviewlist dimension
- `value` (string, required): Existing reviewlist value to update

### `remove_from_reviewlist` (~56 tokens)

Remove a value from the Konduto reviewlist. Future orders matching the value will be scored normally instead of being forced into review.

Input parameters:

- `type` (string, required): Reviewlist dimension
- `value` (string, required): Value to remove

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/codespar-mcp-konduto/codespar-mcp-konduto#diagnostics

## Score history

- 2026-08-04: 69
- 2026-08-03: 65
- 2026-08-02: 65
- 2026-08-01: 36
- 2026-07-31: 28
- 2026-07-29: 26
- 2026-07-28: 46
- 2026-07-27: 46

## Links

- npm package: https://www.npmjs.com/package/@codespar/mcp-konduto
- Socket report: https://socket.dev/npm/package/@codespar/mcp-konduto
- Repository: https://github.com/codespar/mcp-dev-latam
- Changelog RSS feed: https://verifymcp.io/servers/codespar-mcp-konduto/codespar-mcp-konduto/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/codespar-mcp-konduto/codespar-mcp-konduto/changelog.json
- HTML version of this page: https://verifymcp.io/servers/codespar-mcp-konduto/codespar-mcp-konduto
