Skip to main content

MCP server for SONAR — competitive intelligence, KYB due diligence, and adverse media screening for AI agents.

Project description

getsonar-mcp

MCP server for SONAR — competitive intelligence, KYB due diligence, and adverse media screening, exposed as tools any MCP-compatible AI client can call.

Works with Claude Desktop, Claude Code, Cursor, Windsurf, Continue.dev, and any other Model Context Protocol client.

What it does

Adds 7 tools to your AI assistant:

Tool What it does Cost (after free tier)
kyb_findings Quick KYB lookup — corporate registration, sanctions, FCA, directors, UBOs $0.40
kyb_run_submit Full KYB report (async, with Claude analysis) $2.00
competitive_findings Quick competitor intel — pricing, hiring, product, sentiment $0.40
competitive_run_submit Full CI report (async, with Claude analysis) $2.00
adverse_media Negative news + complaints + bad-review screening $0.40
check_report_status Poll the result of an async *_run_submit call free
account_balance Check remaining free-tier calls + usage free

Free tier: 100 calls/month per API key. Beyond that, balance-deducted at the prices above.

Get an API key

  1. Sign up at getsonar.report
  2. Go to API Keys in the sidebar
  3. Click Create API Key, copy the sk-sonar-... key
  4. (Optional) Top up your account on the same page if you'll exceed 100 calls/month

Install

Recommended: uvx (no install needed)

If you have uv installed (most modern Python setups), nothing to install — uvx getsonar-mcp runs the latest version on demand.

Alternative: pipx

pipx install getsonar-mcp

Configure your MCP client

Claude Desktop

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 7 tools should appear in the 🔌 menu.

Claude Code

Add to your project's .mcp.json or run:

claude mcp add sonar -- uvx getsonar-mcp
# Then in your shell: export SONAR_API_KEY=sk-sonar-...

Or with the env var inline:

claude mcp add sonar --env SONAR_API_KEY=sk-sonar-... -- uvx getsonar-mcp

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "sonar": {
      "command": "uvx",
      "args": ["getsonar-mcp"],
      "env": {
        "SONAR_API_KEY": "sk-sonar-YOUR_KEY_HERE"
      }
    }
  }
}

Windsurf / Continue.dev

Same config shape as Claude Desktop. See your client's MCP docs for the config file path.

Configuration

Environment variables (all optional except SONAR_API_KEY):

Variable Default Purpose
SONAR_API_KEY (required) Your sk-sonar-... API key
SONAR_API_BASE https://api.getsonar.report Override for staging / self-hosted SONAR
SONAR_API_TIMEOUT 120 Per-request timeout in seconds
SONAR_MCP_LOG_LEVEL INFO DEBUG for verbose tool dispatch logs

Example prompts

After configuring, try these in Claude:

"Run a KYB check on Tesco PLC and tell me if anything looks risky."

Claude calls kyb_findings("Tesco PLC") → ~30s → reads back the structured findings → highlights the FCA Register hit, any sanctions matches, director-level red flags.

"Submit a full competitive analysis for Notion and tell me when it's done."

Claude calls competitive_run_submit("Notion") → gets run_id → polls check_report_status every 30s → returns the narrative report.

"Am I close to my free-tier limit?"

Claude calls account_balance() → tells you how many of your 100 free monthly calls you've used.

How async reports work

The *_run_submit tools return a run_id immediately (in <1s). Claude then needs to call check_report_status(run_id, agent_type) to fetch the result, which is normally ready in 60-180s. Most MCP clients handle this seamlessly — Claude knows from the tool descriptions to poll until status="completed".

The cheaper *_findings tools are synchronous and complete in 30-90s on a single call. Use those when the LLM just needs raw structured data and will do its own analysis.

Verify your install

Use the MCP Inspector to confirm the server starts and tool dispatch works:

SONAR_API_KEY=sk-sonar-... npx @modelcontextprotocol/inspector uvx getsonar-mcp

You should see all 7 tools listed and be able to invoke them with test inputs.

Source

getsonar-mcp is a thin client for the SONAR public API. The source is currently maintained privately; for issues, feature requests, or transport changes, email ivan.vakulenko@wildix.com.

Troubleshooting

Claude says "tool not available" — check claude_desktop_config.json is valid JSON, restart Claude Desktop, then verify uvx --version runs in your terminal.

401 UnauthorizedSONAR_API_KEY is missing or wrong. Verify in the SONAR dashboard at getsonar.report/api-keys.

402 Payment Required — your free tier is exhausted and your balance is $0. Top up at getsonar.report/api-keys.

Timeouts — bump SONAR_API_TIMEOUT in your env config. The /run tools can take 3+ minutes for complex KYB subjects.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

getsonar_mcp-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

getsonar_mcp-0.1.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file getsonar_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: getsonar_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for getsonar_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 237b030bdec5935cc5e94b7f74dcddd3ecc1a0b4eccff1255f977171d1b849e9
MD5 d5328a3aba290ea79aaf877abe157ba9
BLAKE2b-256 91b680f6f5c5a7e3f76aa1ccdf6e9b3da4d4f36d20a1e2aa9608e11d5dce94d2

See more details on using hashes here.

File details

Details for the file getsonar_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: getsonar_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.5

File hashes

Hashes for getsonar_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8aa06fea59f3e3d38ca2fbc8ac955fff5e198a8bafa9fd274e87f6557c30704
MD5 4d6d38e278dcbf69c8d5430949c5a0ef
BLAKE2b-256 980f58ffd9be0250595af5cdf69b19710d99a2804f1fdf9b1ff9acb2b3efd79f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page