Skip to main content

Model Context Protocol server for BitSight security ratings

Project description

BiRRe

Python Version License Type Checked OpenSSF Scorecard report Dependabot Updates CodeQL SonarCloud Analysis CodeFactor MegaLinter Cross-Platform Testing Tests & Coverage codecov

BiRRe Logo

BiRRe (Bitsight Rating Retriever) is a Model Context Protocol (MCP) server that turns a BitSight subscription into LLM-friendly tools. It hides 400+ raw endpoints behind a curated, strongly-typed workflow surface, handles ephemeral subscriptions automatically, and ships as a zero-install uv app so analysts and agents can run it anywhere.

Why use BiRRe?

  • Unified workflows – LLMs gain one consistent toolset for search, ratings, onboarding, and subscription hygiene.
  • Safer operations – automatic folder targeting, dry-run previews, and retry-aware helpers keep BitSight data tidy while preventing accidental churn.
  • Trustworthy releases – strict typing (pyright), property-based tests, signed artifacts, and SBOMs make it easy to depend on BiRRe in regulated environments.

What you need

Requirement Details
BitSight access API key with rights to the companies/folders you intend to query.
Runtime Python 3.13+ (uv auto-installs across Linux/macOS/Windows).
Network HTTPS to api.bitsighttech.com for live data; custom CAs are supported.
Client Any MCP-compatible LLM or agent platform (GPTs, LangChain, local MCP clients, etc.).

Quick start

  1. Export your BitSight API key.

  2. Start the MCP server with uvx (install-free PyPI run):

    export BITSIGHT_API_KEY="your-bitsight-api-key"
    uvx birre
    
  3. Point your MCP-compatible client/LLM at the server endpoint. Start with company_search to obtain GUIDs, then call get_company_rating or run the risk-manager workflows.

  4. Use --help for every available command, subcommand, and option.

The rest of this README assumes a local checkout: Create a local copy with git clone https://github.com/boecht/birre, then start with uv run birre in the BiRRe directory.

Configuration

Configuration layers merge in this order: config.tomlconfig.local.toml → environment variables → CLI flags. Inspect or validate the effective settings with:

uv run birre config show
uv run birre config validate --config differently/named/config.toml

See docs/CLI.md for full option tables and config.toml for annotated defaults.

Tooling overview

Switch contexts via --context, BIRRE_CONTEXT, or [runtime].context. Tool names map directly to MCP tool calls.

Shared tools (standard + risk_manager)

Tool Inputs Description
company_search Company name (fuzzy) or domain (exact). Returns the matches (GUID, name, domain, count of eligible companies).
get_company_rating Company GUID. Compiles a rating payload: current value/color, 8‑week and 1‑year trends, prioritized findings, and the rating legend. (automatically subscribes and unsubscribes, if needed)

risk_manager-only tools

Tool Inputs Description
company_search_interactive name or domain (same as company_search). Enriches search result with current rating, number of employees, subscription state, and more) plus the same info about the parent company.
manage_subscriptions action (add/delete), list of GUIDs, optional folder, dry_run. Validates intent, resolves/creates folders for adds, then executes subscription changes. Returns either a dry-run preview or applied summary (added/deleted/errors, folder metadata).
request_company Comma-separated domains (max 255), optional folder, dry_run. Deduplicates submissions, reports already-requested domains, and submits BitSight bulk onboarding CSVs when available (legacy fallback otherwise). Includes a per-domain success/failure summary and folder info.

Self-test

Use the built-in self test to sanity-check your setup before connecting a client. The command mirrors the run startup sequence, reports the resolved configuration, and exercises BitSight connectivity, subscription, and tooling checks against BitSight’s testing environment (staging). When invoked with --offline, only the local configuration and logging checks run.

# Run the full diagnostics against the default BitSight testing endpoint.
uv run birre selftest

# Target the production API to exercise real subscription logic and permissions.
uv run birre selftest --production

Successful runs exit with 0. Failures return 1, and partial results with warnings (for example, optional tooling gaps in offline mode) return 2. Expect occasional 403 Access Denied responses when using BitSight’s testing environment.

Documentation, support & contributions

Issues and PRs are welcome; contributions are released under the Unlicense.

Disclaimer

BiRRe (Bitsight Rating Retriever) is not affiliated with, endorsed by, or sponsored by BitSight Technologies, Inc.

  • This project is developed and maintained independently by the open source community
  • "Bitsight" is a registered trademark of BitSight Technologies, Inc.
  • This integration is provided "as-is" without any warranty or official support from BitSight Technologies, Inc.
  • Use is intended for integration scenarios respecting BitSight’s terms.

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

birre-4.0.0.tar.gz (249.3 kB view details)

Uploaded Source

Built Distribution

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

birre-4.0.0-py3-none-any.whl (245.0 kB view details)

Uploaded Python 3

File details

Details for the file birre-4.0.0.tar.gz.

File metadata

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

File hashes

Hashes for birre-4.0.0.tar.gz
Algorithm Hash digest
SHA256 ca43e68b33747b558d63d0e748e9f59b1dfa24bd27c063d424555a3664eb5b8e
MD5 e2ede0a8d09831586fc83cd5d0c2f246
BLAKE2b-256 a0a69336c8f4a0bc342e4cc27379fc225f82471cfd29716c0540f46ddacba15c

See more details on using hashes here.

Provenance

The following attestation bundles were made for birre-4.0.0.tar.gz:

Publisher: build-sign-publish.yml on boecht/birre

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

File details

Details for the file birre-4.0.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for birre-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c65d486e52ce9c1ee4aa70bb601208b44138669dff7f9276e2199246da204a69
MD5 573c407062706f9ccf24ae9026dfe1fb
BLAKE2b-256 20eee43e3b0feac27a8a002912b082b16fae407124c8eff53ad95c80ee6826a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for birre-4.0.0-py3-none-any.whl:

Publisher: build-sign-publish.yml on boecht/birre

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