# Resolve402 (npm · resolve402-mcp)

French directors, NACE company search (FR, NO, FI), KYB checks, contacts, hiring signals, x402.

- Trust score: 75/100 (medium)
- Change this week: +1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `resolve402-mcp`: 75/100 (this document), [markdown](https://verifymcp.io/servers/charleskremer-hub-resolve402/resolve402-mcp.md), [page](https://verifymcp.io/servers/charleskremer-hub-resolve402/resolve402-mcp)

## Channel facts

- Registry: `npm`
- Package: `resolve402-mcp`
- Version: `0.5.0`
- 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-11-05.

- **Supply Chain Security**: 91/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, reached via @x402/evm > zod. A fixed version is available.
  - No install/post-install scripts declared.
  - 30 of 203 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 15 days ago).
  - Security-disclosure policy not yet verified: we couldn't inspect the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1794 tokens (~199/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **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.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Resolve402 MCP server?

Resolve402 runs locally as an npm package, launched with npx -y resolve402-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add charleskremer-hub-resolve402 -- npx -y resolve402-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "charleskremer-hub-resolve402": {
      "command": "npx",
      "args": [
        "-y",
        "resolve402-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "charleskremer-hub-resolve402": {
      "command": "npx",
      "args": [
        "-y",
        "resolve402-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add charleskremer-hub-resolve402 -- npx -y resolve402-mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add charleskremer-hub-resolve402 --command npx --arg -y --arg resolve402-mcp
```

### Hermes

```yaml
mcp_servers:
  charleskremer-hub-resolve402:
    command: "npx"
    args: ["-y", "resolve402-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "charleskremer-hub-resolve402": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "resolve402-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add charleskremer-hub-resolve402 -t stdio -c npx -a -y resolve402-mcp
```

### Other

```json
{
  "mcpServers": {
    "charleskremer-hub-resolve402": {
      "command": "npx",
      "args": [
        "-y",
        "resolve402-mcp"
      ]
    }
  }
}
```

## 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-11-01 (score 75, 0)

- [security] Stability: 0.97 → pass

### 2026-10-31 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 71, −2)

- [security regression] CVE-2023-54404 affects this package: high
- [security regression] Known CVEs: pass → fail

### 2026-10-22 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (9)

### `find_decision_makers` (~141 tokens)

Company directors in France (dirigeants: CEO, président, gérant, DG, administrateurs) with their probable business email, from a SIREN or a company name. Official RNE registry data, company web domain, mail provider, probable email per officer (pattern-based, not SMTP-verified) and alternatives. 0.02 USDC per call, charged only if found. Nothing stored (GDPR).

Input parameters:

- `company` (string): Company name, if no SIREN
- `domain` (string): Optional company web domain hint
- `siren` (string): 9-digit French SIREN (preferred)

### `people_search` (~351 tokens)

List decision makers (CEO, président, DG, gérant) of French companies matching a sector (NAF section A-U or code like 62.01Z), a place (department, region or postal code), a minimum headcount and a revenue or net income range, from the official registry (Sirene + RNE). Up to 25 people per call, one per company, with SIREN, NAF, city and size; each result gives the find_decision_makers call for their email. 0.05 USDC per call, charged only if someone matches.

Input parameters:

- `department` (string): French department code, e.g. 75, 69, 2A
- `keywords` (string): Free text on company name or activity
- `limit` (integer): 1-25, default 10
- `max_net_income` (string): Maximum net income in EUR (-1 = loss-making only)
- `max_revenue` (string): Maximum revenue in EUR
- `min_employees` (integer): Minimum headcount
- `min_net_income` (string): Minimum net income in EUR (0 = profitable only)
- `min_revenue` (string): Minimum revenue in EUR, latest published accounts (5000000, 5M, 500k)
- `page` (integer): Page of companies, default 1
- `postal_code` (string): 5-digit postal code
- `region` (string): INSEE region code, e.g. 11
- `role` (string): Default ceo
- `sector` (string): NAF section letter (A-U) or NAF code (62.01Z)

### `counterparty_check` (~213 tokens)

Check a company before invoicing or paying it, in one call: active or closed (French registry), EU VAT number valid (VIES), insolvency proceedings (BODACC: liquidation, redressement, sauvegarde), asset-freeze and sanctions match (DG Trésor register, incl. EU and UN), and optional IBAN checksum, country and SEPA. Returns a verdict ok / review / block with reasons; on review or block, ask a human. From a SIREN, SIRET, EU VAT number or French company name. 0.02 USDC per call, charged only if found.

Input parameters:

- `company` (string): French company name
- `iban` (string): Optional IBAN to check
- `siren` (string): 9-digit French SIREN
- `siret` (string): 14-digit French SIRET
- `vat` (string): EU VAT number, e.g. FR27552032534 or DE123456789

### `company_contacts` (~200 tokens)

Contact details a company publishes on its own website, from its domain or any URL of the site: shared emails only (contact@, press@, dpo@; personal addresses are never returned, only counted), phone numbers in E.164 with type (switchboard, customer service, fax), head-office address, company social pages (LinkedIn, X, Facebook, Instagram, YouTube, GitHub), contact form URL, and legal identifiers checked (SIREN Luhn, VAT checksum, RCS, Impressum register, legal form, share capital) and matched to the French registry (official_name, siren_match). Every field carries the page it was read on. robots.txt honoured. 0.005 USDC per call, charged only if something is found.

Input parameters:

- `domain` (string): Company web domain, e.g. acme.fr
- `url` (string): Any URL of the company site (alternative to domain)

### `company_search` (~363 tokens)

Search companies by industry (NACE code), country, region and size in official European business registers: France (Sirene), Norway (Brønnøysund), Finland (PRH/YTJ). Give one NACE code, Rev. 2 or Rev. 2.1 (class 62.01, group 62.0 or division 62): it is translated with the official correspondence tables into each registry's classification (NAF, SN2025, TOL), and only companies whose main activity matches come back, up to 25, with registry ID (SIREN / org.nr / Y-tunnus), status, both NACE codes, local code, size band, address, licence and attribution. No sole traders. 0.01 USDC per call, charged only if a company is found.

Input parameters:

- `country` (string, required): FR (Sirene), NO (Brønnøysund), FI (PRH/YTJ)
- `limit` (integer): 1-25, default 10
- `nace` (string, required): NACE code, Rev. 2 or 2.1: class (62.01), group (62.0) or division (62)
- `nace_rev` (string): Force the NACE version when the code exists in both
- `region` (string): FR: head-office département (75, 69, 2A); NO: kommunenummer (0301) or fylke (03); FI: municipality name (Helsinki)
- `size_max` (integer): Maximum employees (FR and NO only)
- `size_min` (integer): Minimum employees (FR and NO only)
- `status` (string): active (default) or all

### `hiring_signals` (~205 tokens)

Is a company hiring, how much and for which functions? Open jobs read from its public ATS job board (Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Personio, Workable, Teamtailor, Workday), summarized as buying signals: open_jobs, posted_last_30d, hiring_intent (low/medium/high), jobs by function (sales, engineering, data...), leadership roles. From a web domain (any country), a French SIREN or a French company name. Chain with find_decision_makers to know who to contact. 0.01 USDC per call, charged only if open jobs are found.

Input parameters:

- `company` (string): French company name
- `domain` (string): Company web domain, e.g. acme.com (any country)
- `limit` (integer): Max jobs returned (default 50)
- `siren` (string): 9-digit French SIREN

### `verify_email` (~63 tokens)

Pre-check a business email: syntax, MX, mail provider (Google, Microsoft 365, Proofpoint...), disposable, free webmail, role account. No mailbox test. 0.003 USDC per call.

Input parameters:

- `email` (string, required): Email address to check

### `doc_to_markdown` (~129 tokens)

Convert a document (PDF, DOCX, HTML, TXT) or an image into clean Markdown for an LLM, with tables extracted as rows and OCR (French, English) for scanned PDFs and images. Give a public URL or a local file path (max 10 MB). 0.005 USDC per call, only if text is found. Nothing stored.

Input parameters:

- `file_path` (string): Local file path (PDF, DOCX, HTML, TXT), sent as the request body instead of url
- `url` (string): Public http(s) URL of the document

### `markdown_to_pdf` (~129 tokens)

Render Markdown into a clean PDF (headings, lists, code, blockquotes, simple tables, page numbers). Max 200k characters. Returns the PDF as an embedded resource, or writes it to output_path when given. 0.01 USDC per call. Nothing stored.

Input parameters:

- `markdown` (string, required): Markdown source (CommonMark + GFM tables)
- `output_path` (string): Local path to write the .pdf to (recommended for large documents)
- `paper` (string): Page size, default A4
- `title` (string): Document title printed on top

## Diagnostics

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

## Score history

- 2026-11-05: 75
- 2026-11-04: 75
- 2026-11-03: 75
- 2026-11-02: 75
- 2026-11-01: 75
- 2026-10-31: 75
- 2026-10-30: 74
- 2026-10-29: 74
- 2026-10-28: 73
- 2026-10-27: 73
- 2026-10-26: 72
- 2026-10-25: 72
- 2026-10-24: 71
- 2026-10-23: 73
- 2026-10-22: 73
- 2026-10-21: 72
- 2026-10-20: 72
- 2026-10-19: 71
- 2026-10-18: 71
- 2026-10-17: 70
- 2026-10-16: 70
- 2026-10-15: 69
- 2026-10-14: 69
- 2026-10-13: 34
- 2026-10-12: 34
- 2026-10-04: 66
- 2026-10-03: 66
- 2026-10-02: 40

## Common questions

### What is the Resolve402 MCP server?

Resolve402 is an MCP server listed in the public MCP registry as io.github.charleskremer-hub/resolve402. French directors, NACE company search (FR, NO, FI), KYB checks, contacts, hiring signals, x402. This page covers its npm package (resolve402-mcp).

### Is the Resolve402 MCP server safe to use?

Resolve402 scores 75 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Resolve402 MCP server expose?

Resolve402 exposes 9 tools: find_decision_makers, people_search, counterparty_check, company_contacts, company_search, and 4 more. Their descriptions and schemas cost roughly 1,794 tokens of context every time the server is loaded.

### Is the Resolve402 MCP server still maintained?

Resolve402 is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Resolve402 MCP server under?

Resolve402 declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/resolve402-mcp
- Socket report: https://socket.dev/npm/package/resolve402-mcp
- Website: https://resolve402.dev/
- Changelog RSS feed: https://verifymcp.io/servers/charleskremer-hub-resolve402/resolve402-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/charleskremer-hub-resolve402/resolve402-mcp.json
- HTML version of this page: https://verifymcp.io/servers/charleskremer-hub-resolve402/resolve402-mcp
