Skip to main content

Model Context Protocol server for Cyberbro IOC analysis and enrichment

Project description

MseeP.ai Security Assessment Badge

Cyberbro MCP Server


Extract IoCs from messy text and analyze them with Cyberbro.
🌐 demo.cyberbro.net

mcp-cyberbro-demo

Model Context Protocol server for Cyberbro.

This project is packaged as a standard Python distribution and can be launched with:

  • uvx mcp-cyberbro
  • pip install mcp-cyberbro then mcp-cyberbro

Why this server

  • Analyze observables (IP, domain, URL, hash, etc.) via Cyberbro engines.
  • Integrate threat-analysis actions directly in MCP-capable assistants.
  • Run with stdio, sse, or streamable-http transports.
  • Compatible with any MCP client that supports one of these transports.

Installation

Use with uvx (standalone)

uvx mcp-cyberbro --cyberbro_url http://localhost:5000

Use with pip

pip install mcp-cyberbro
mcp-cyberbro --cyberbro_url http://localhost:5000

Local development

pip install -e .
mcp-cyberbro --cyberbro_url http://localhost:5000

Docker

Default container command starts in streamable-http mode on port 8000.

docker run --rm -p 8000:8000 \
  -e CYBERBRO_URL=http://host.docker.internal:5000 \
  ghcr.io/stanfrbd/mcp-cyberbro:latest

To force stdio transport:

docker run -i --rm \
  -e CYBERBRO_URL=http://host.docker.internal:5000 \
  ghcr.io/stanfrbd/mcp-cyberbro:latest \
  --transport stdio

Configuration

Copy .env.example and set at least:

  • CYBERBRO_URL (required)

Supported environment variables:

  • CYBERBRO_URL
  • API_PREFIX (default: api)
  • SSL_VERIFY (true/false)
  • MCP_TRANSPORT (stdio, sse, streamable-http)
  • MCP_HOST
  • MCP_PORT
  • MCP_MOUNT_PATH
  • MCP_SSE_PATH
  • MCP_STREAMABLE_HTTP_PATH

CLI flags are also available and override env values.

MCP Client Integration

You can use this server with Claude Desktop, Claude Code, Cursor, OpenAI-compatible MCP clients, or any other MCP client.

Example config using uvx:

{
  "mcpServers": {
    "cyberbro": {
      "command": "uvx",
      "args": ["mcp-cyberbro"],
      "env": {
        "CYBERBRO_URL": "http://localhost:5000",
        "API_PREFIX": "api"
      }
    }
  }
}

Example with Docker + stdio:

{
  "mcpServers": {
    "cyberbro": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "CYBERBRO_URL",
        "ghcr.io/stanfrbd/mcp-cyberbro:latest",
        "--transport",
        "stdio"
      ],
      "env": {
        "CYBERBRO_URL": "http://localhost:5000"
      }
    }
  }
}

MCP Registry Metadata

server.json is included for MCP Registry publication and points to PyPI package mcp-cyberbro.

Release Pipelines

Release-created workflows:

  • .github/workflows/publish-test-pypi.yml
  • .github/workflows/publish-pypi.yml
  • .github/workflows/publish-mcp-plugin.yml

Available Tools

  • analyze_observable
  • is_analysis_complete
  • get_analysis_results
  • get_engines
  • get_web_url

Example Prompts

Here are practical prompt examples you can use with any MCP-capable assistant connected to Cyberbro.

Getting Indicator Details

  • Cyberbro: Check indicators for target.com
  • Can you check this IP reputation with Cyberbro? 192.168.1.1. Use github, google and virustotal engines.
  • I want to analyze the domain example.com. What can Cyberbro tell me about it? Use max 3 engines.
  • Analyze these observables with Cyberbro: suspicious-domain.com, 8.8.8.8, and 44d88612fea8a8f36de82e1278abb02f. Use all available engines.

Observable Analysis

  • I found this (hash|domain|url|ip|extension). Can you submit it for analysis to Cyberbro and analyze the results?

OSINT Investigation

  • Create an OSINT report for the domain example.com using Cyberbro. Use all available engines and pivot on the results for more information. Use a maximum of 10 analysis requests.

Acknowledgements

License

MIT

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

mcp_cyberbro-0.0.3.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

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

mcp_cyberbro-0.0.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_cyberbro-0.0.3.tar.gz.

File metadata

  • Download URL: mcp_cyberbro-0.0.3.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_cyberbro-0.0.3.tar.gz
Algorithm Hash digest
SHA256 214acc3eae0b7ebcb4579fd74406cc55d4be5f6b2767dd2ffcb0193da912723d
MD5 825a8a72cb257e49ede89116c899802c
BLAKE2b-256 519de06f6fb7c55f57327deeb49ba3633b3d16784d037f19bff41edb98fe8427

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_cyberbro-0.0.3.tar.gz:

Publisher: publish-pypi.yml on stanfrbd/mcp-cyberbro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_cyberbro-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: mcp_cyberbro-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_cyberbro-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2c5aad0495ae867b68397cedb8106150cc1ee1f6dbd8a4ed28bf5360f8285fd2
MD5 139332b206f094cd1b476f20f09fabca
BLAKE2b-256 599c78cffe03d93b3388c0f106b4e8a128674dfc0935567a8829f2420ef296b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_cyberbro-0.0.3-py3-none-any.whl:

Publisher: publish-pypi.yml on stanfrbd/mcp-cyberbro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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