Private Law Wiki
Sourced answers, search and bank-case assessment for wiki.private.law by the Mothership runtime.
Beschreibung vom Entwickler (englisches Original)
Company register lookups and KYB checks: registries, sanctions, PEP, offshore leaks, adverse media.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
SONAR_API_KEY, SONAR_API_BASE, SONAR_API_TIMEOUTAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"sonar": {
"command": "uvx",
"args": [
"getsonar-mcp"
],
"env": {
"SONAR_API_KEY": "your-value",
"SONAR_API_BASE": "your-value",
"SONAR_API_TIMEOUT": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add sonar --env SONAR_API_KEY=your-value --env SONAR_API_BASE=your-value --env SONAR_API_TIMEOUT=your-value -- uvx getsonar-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"sonar": {
"command": "uvx",
"args": [
"getsonar-mcp"
],
"env": {
"SONAR_API_KEY": "your-value",
"SONAR_API_BASE": "your-value",
"SONAR_API_TIMEOUT": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"sonar": {
"type": "stdio",
"command": "uvx",
"args": [
"getsonar-mcp"
],
"env": {
"SONAR_API_KEY": "your-value",
"SONAR_API_BASE": "your-value",
"SONAR_API_TIMEOUT": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
SONAR_API_BASE envSONAR_API_TIMEOUT envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto Ivanolegvak bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: SONAR_API_KEY
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.3.0) kam gestern in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Private Law Wiki, Compliance, SOS.city public record
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Sourced answers, search and bank-case assessment for wiki.private.law by the Mothership runtime.
Indian business compliance answers: MCA late fees, filing calendar, cheque bounce, MSME interest.
Public records for every city: permits, alerts, wildfires, laws and funding, linked to the source.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
MCP server for SONAR: KYB due diligence on vendors, partners and resellers, callable from your AI assistant.
Ask Claude, Cursor or Windsurf whether a company exists and is in good standing, or to screen it, and it gets back the official register record, sanctions and PEP matches, ICIJ Offshore Leaks hits and adverse media, each finding naming the kind of source it came from.
SONAR is a due-diligence aid built on public records. It is not a regulated AML/KYC provider and its output is not a compliance decision: a human reviews the findings.
Works with Claude Desktop, Claude Code, Cursor, Windsurf and any other Model Context Protocol client. Listed in the official MCP Registry as io.github.Ivanolegvak/sonar-mcp.
The API is pay per call:
| Call | Price |
|---|---|
Company lookup (company_lookup, company_officers) | €0.01 when the company is found, free when not; the first 100 found are free |
/findings (kyb_findings, adverse_media) | €0.50 |
/run (kyb_run_submit) | €6.00 |
check_report_status, account_balance | free |
Your first API call is free (a findings or report call; lookups have their own 100 free). After that, calls are paid from a prepaid balance: top up from €5 at getsonar.report/developer/keys. Plans and the web app's free tier are on getsonar.report/pricing.
sk-sonar-... keyYou need uv (it provides uvx). Nothing else to install: uvx getsonar-mcp fetches and runs the latest release. With pipx instead: pipx install getsonar-mcp, then use getsonar-mcp as the command.
The key goes in the SONAR_API_KEY environment variable of the server process.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "sonar": { "command": "uvx", "args": ["getsonar-mcp"], "env": { "SONAR_API_KEY": "sk-sonar-YOUR_KEY_HERE" } } } }
Restart Claude Desktop. The seven SONAR tools appear in the tools menu. If they don't, Claude Desktop may not find uvx on its PATH: replace "uvx" with the full path that which uvx prints (e.g. /Users/you/.local/bin/uvx).
claude mcp add sonar --env SONAR_API_KEY=sk-sonar-YOUR_KEY_HERE -- uvx getsonar-mcp
Add --scope user to make it available in every project. Check it with claude mcp list.
Edit ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": { "sonar": { "command": "uvx", "args": ["getsonar-mcp"], "env": { "SONAR_API_KEY": "sk-sonar-YOUR_KEY_HERE" } } } }
Edit ~/.codeium/windsurf/mcp_config.json (or Windsurf Settings → Cascade → MCP servers → View raw config):
{
"mcpServers": { "sonar": { "command": "uvx", "args": ["getsonar-mcp"], "env": { "SONAR_API_KEY": "sk-sonar-YOUR_KEY_HERE" } } } }
Other clients (Continue.dev, Zed, Cline, ...) take the same command, args and env; see your client's MCP docs for where the config lives.
| Variable | Default | Purpose |
|---|---|---|
SONAR_API_KEY | (required) | Your sk-sonar-... API key (or an sk-sonar-test-... sandbox key, see below) |
SONAR_API_BASE | https://api.getsonar.report | Override for staging or self-hosted SONAR |
SONAR_API_TIMEOUT | 120 | Per-request timeout in seconds |
SONAR_MCP_LOG_LEVEL | INFO | DEBUG for verbose logs (stderr) |
| Tool | What it does | Price |
|---|---|---|
company_lookup | Register check: does the company exist, is it active and in good standing | €0.01 if found |
company_officers | A company's officers from its register, current and former | €0.01 if found |
kyb_findings | KYB screening: sanctions, PEP, owners, adverse media and the register | €0.50 |
kyb_run_submit | Submit a full KYB report, returns a run_id | €6.00 |
adverse_media | Negative news, complaints and reviews | €0.50 |
check_report_status | Poll a report submitted with kyb_run_submit | free |
account_balance | Balance, free calls and free lookups remaining | free |
All tools return Markdown for the model to read. Which one to use:
company_lookup (€0.01)company_lookup with include: ["officers"], or company_officers (€0.01)kyb_findings (€0.50)kyb_run_submit then check_report_status (€6.00)company_lookupInput:
{ "country": "GB", "company_name": "Tesco PLC", "include": ["officers", "filings"] }
country (ISO code) is required, plus company_name or registration_number (a number is matched exactly and decides alone; PL, BE and BR take a number only). state is required for the US (NY, CO, OR, CT, TX, PA, FL, IA, DC). include is optional and free: officers (GB, CZ, SK, NO, FR) and filings (GB, FR) of the found company.
The name rule is strict: case, punctuation, accents and the spelling of the legal form are set aside, any other difference is another company, so a look-alike name is NOT_FOUND.
Output: a headline, then the API's full JSON answer (every field, nothing dropped):
# Company lookup: Tesco PLC (GB): **FOUND**
Full answer: {"query": ..., "status": "FOUND", "matches": [{"name": "TESCO PLC", "good_standing": true, "officers": [...], "filings": [...], ...}], "truncated": null, "coverage_note": null, ...}
good_standing is false when the company is closed or the register marks a default or insolvency (GB: accounts or confirmation statement overdue, strike-off pending), and null where the register publishes no such markers. truncated: true (FR) means the register holds more companies of the name than it returned: search by number. coverage_note (US) says what the state register holds, so a NOT_FOUND reads for what it is.
company_officersInput:
{ "country": "GB", "registration_number": "00445790" }
Output: a headline (current and former officer counts, price) and the full JSON: name, role, person or company, appointed_on, resigned_on. GB, CZ, SK, NO, FR. Priced like a lookup.
kyb_findingsInput:
{ "company_name": "Tesco PLC", "website": "https://www.tesco.com", "country": "GB", "registration_number": "00445790" }
company_name is required. Pass country (and state for the US): without it no company register is searched and the answer says NOT_SEARCHED. registration_number and vat_number are optional. website is optional but strongly recommended: it separates the company from unrelated ones sharing the name.
Output (abridged, values illustrative):
# KYB Screening: Tesco PLC
Sources checked: 42 · Processing time: 41250ms
Found data: corporate_registration, directors_officers, adverse_media Checked, clean (the check ran and returned nothing about the company): sanctions_screening, offshore_leaks
Each finding names the kind of source (company_register, sanctions_lists, offshore_records, news_search, ...); news articles keep their link.
kyb_run_submitInput: same as kyb_findings. Output:
Report submitted.
3f6c...Call check_report_status with run_id='3f6c...' and agent_type='kyb-diligence' in 30-60 seconds to get the result.
check_report_statusInput:
{ "run_id": "3f6c...", "agent_type": "kyb-diligence" }
agent_type is kyb-diligence (default) or adverse-media. While the report runs it answers Report status: running. Still processing, check again in 15-30 seconds.; when done it returns a compact summary: overall verdict and risk level, company details, a PASS / REVIEW / FLAG table of checks, risk flags, directors and sanctions coverage.
adverse_mediaInput: same as kyb_findings. Output: the same Markdown shape as kyb_findings, limited to news, complaints and review sites (no sanctions or PEP screening).
account_balanceInput: none. Output:
# Account usage: 2026-11
"Is Tesco PLC an active UK company in good standing? Who are its directors?"
The model calls company_lookup with country: "GB" and include: ["officers"]: one call, €0.01.
"Run a KYB check on Tesco PLC (tesco.com) and tell me if anything needs a closer look."
The model calls kyb_findings, reads the structured findings and points out sanctions, register or adverse-media hits with their kind of source.
"Get a full KYB report on Wise Payments Limited and summarise it when it's done."
The model calls kyb_run_submit, then check_report_status until the report is complete.
"How many free trial calls do I have left?"
The model calls account_balance.
The MCP Inspector starts the server and lists its tools:
SONAR_API_KEY=sk-sonar-YOUR_KEY_HERE npx @modelcontextprotocol/inspector uvx getsonar-mcp
Listing tools works without a key; calling one needs a valid key.
Create a test key (`sk-sonar-test-...
Nur der Anfang wird gezeigt; den Rest findest du im Repo