Model Context Protocol server for BitSight security ratings
Project description
BiRRe
BiRRe (Bitsight Rating Retriever) is a Model Context Protocol (MCP) server that provides access to BitSight security rating data through an existing subscription. It utilizes FastMCP for API integration and can be run easily without installation in a temporary, isolated Python environment with uv.
Installation
Quick start
- Set your BitSight API key, then start BiRRe:
export BITSIGHT_API_KEY="your-bitsight-api-key"
uvx --from git+https://github.com/boecht/birre birre run
- Point your LLM of choice to the MCP server and ask it for the BitSight rating of any company.
- Explore the CLI with the added
--helpflag or consult docs/CLI.md. Individual subcommands such asrunandselftestalso provide dedicated--helpoutput.
Configuration
Configuration sources (lowest → highest): config.toml → config.local.toml → environment → CLI.
See the descriptions in config.toml for available fields and details. For CLI options,
run with --help or consult docs/CLI.md.
Run directly from GitHub with uvx
uvx --from git+https://github.com/boecht/birre birre run
Or run locally
git clone https://github.com/boecht/birre
uv run birre run
That's it! The script will automatically install all dependencies using uv.
Disclaimer
BiRRe (Bitsight Rating Retriever) is not affiliated with, endorsed by, or sponsored by BitSight Technologies, Inc. This is an unofficial, community-developed MCP server that provides integration with Bitsight's publicly available services.
- 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.
This project enables third-party access to Bitsight services through their public APIs and is intended for educational and integration purposes only.
Features
Available Tools
BiRRe supports context-specific toolsets:
standardcontext (default) – quick rating workflowscompany_search: Search BitSight for companies by name or domainget_company_rating: Retrieve security ratings with automatic subscription management
risk_managercontext – subscription and onboarding operationscompany_search_interactive: Enriched search results (name + GUID, domains, description, employee count, subscription folders) for human-in-the-loop selectionmanage_subscriptions: Bulk subscribe/unsubscribe GUIDs with dry-run support and audit summariesrequest_company: Submit BitSight company requests (deduplicates existing requests, attempts v2 bulk workflow with folder targeting, falls back gracefully)- regular
company_searchandget_company_ratingremain available for spot checks
Select a context via --context, BIRRE_CONTEXT, or the [runtime].context config key.
BitSight API Documentation (v1 + v2 are complementary)
API Version: This implementation is based on BitSight APIs as of July 24th, 2025. For the latest API changes and updates, refer to the BitSight API Change Log.
Interactive API Documentation (requires BitSight account login):
- v1 API: https://service.bitsighttech.com/customer-api/v1/ui (383 endpoints)
- v2 API: https://service.bitsighttech.com/customer-api/v2/ui (20 enhanced features)
Schema Updates: To update API schemas when forking or contributing:
- Log into BitSight web interface
- Download schemas from:
- Save as
src/birre/resources/apis/bitsight.v1.schema.jsonandsrc/birre/resources/apis/bitsight.v2.schema.json
Version History and Outlook
Version 1.0: MVP
- Company Search: Search for companies by name or domain via API v1
companySearch - Company Rating: Retrieve core rating details with automatic subscription management
- Ephemeral Subscriptions: Subscribe/unsubscribe on demand to avoid license leakage
- Structured Error Handling: Clear responses for quota/subscription failures
- uv/uvx Compatible: Run easily with uv using PEP 723 inline script metadata
Version 2.0: Top Vulnerability Insights
- Top Findings Summary: Attach the most impactful vulnerabilities to the rating payload, using relaxed severity filters (severe/material first, then moderate with web-appsec padding when needed)
- Enhanced Sorting: Prioritise findings by severity, asset importance, and recency to keep the worst issues on top
- Narrative Improvements: Normalise detection/remediation text for quick consumption by MCP clients
Version 3.0: Context Modes (Latest Stable)
- Two personas:
standard(quick ratings) andrisk_manager(subscription operations) - Context-driven tool filtering via CLI (
--context), env (BIRRE_CONTEXT), or config - Risk manager tooling delivers enriched search data, dry-run batch subscription workflows, and company onboarding requests without in-tool prompts (LLMs coordinate user confirmations)
Version 4.0: Structural Hardening & Developer Ergonomics (Planned)
- Treat strict typing, property-based tests, and benchmarks as ship gates
- Keep cross-platform CI + telemetry visible for regression detection
- Harden release workflows (Sigstore signing, SBOMs, dependency review, branch protection)
- Finish CLI/diagnostics refinements and contributor-focused documentation
Version 5.0: Caching & Company Reports (Planned)
- Daily caching of ratings and reusable storage for BitSight artefacts
- Stop redundant API calls and reuse cached assets when exporting reports
- Deliver official PDF reports via direct response, email, or configured file share
Version 6.0: Multi-Tenant Service (Planned)
- Remote deployment support
- Authentication and authorization
- Concurrent user support
Testing
CLI Commands Overview
BiRRe provides a modular CLI with the following command groups:
run- Start the MCP server with optional startup checks and context selectionconfig- Initialize, show, or validate configuration files and settingslogs- Inspect and maintain log files (clear, rotate, show, path)selftest- Run comprehensive diagnostics against BitSight APIs
All commands support --help for detailed usage. See docs/CLI.md for complete CLI reference.
Review configuration state
Use the config command group to review or validate the effective settings before
you run diagnostics or bring up the server. It surfaces the values assembled from
config.toml, config.local.toml, environment variables, and CLI overrides,
and can also sanity-check standalone configuration files.
# Inspect configuration sources and resolved settings.
uv run birre config show
# Validate (and optionally minimize) a configuration file before use.
uv run birre config validate --config my.config.toml --minimize
Selftest
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.
Testing with pytest
BiRRe ships with both offline unit tests and online integration checks.
- Recommended: run the full suite; online tests skip automatically if the API key/config is missing.
uv run --group dev pytest
- Only offline (no network):
uv run --group dev pytest --offline
- Only online (requires
BITSIGHT_API_KEYor local config):
uv run --group dev pytest --online-only
Further Documentation
- Changelog – detailed list of fixes and enhancements per release.
- Roadmap & version history – shipped releases, upcoming milestones, and ongoing initiatives.
- CLI reference – command usage, shared options, and subcommands.
- Architecture guide – FastMCP layering, tooling, and API integration details.
- BitSight API references – curated overviews extracted from the official v1/v2 documentation.
Contributing
We welcome contributions! Whether it's bug reports, feature requests, documentation improvements, or code contributions, your help makes BiRRe better.
- Read our Contributing Guide for development setup and guidelines
- Check out open issues or create a new one
- Submit pull requests following our PR template
- Review our Security Policy for reporting vulnerabilities
All contributions are released under the Unlicense (public domain).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file birre-4.0.0a2.tar.gz.
File metadata
- Download URL: birre-4.0.0a2.tar.gz
- Upload date:
- Size: 240.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29cbd3d68fb9b9af405d6cfe5b5d3883c10b75c86350159bca4cc2074c7b3b54
|
|
| MD5 |
280f01e420097c7873c17b4cd3253bbf
|
|
| BLAKE2b-256 |
053e4e55b0e6efb5d7188bc4de8cd4502d4f8664fd22841dfd2ac496ee4c4bee
|
Provenance
The following attestation bundles were made for birre-4.0.0a2.tar.gz:
Publisher:
build-sign-publish.yml on boecht/birre
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
birre-4.0.0a2.tar.gz -
Subject digest:
29cbd3d68fb9b9af405d6cfe5b5d3883c10b75c86350159bca4cc2074c7b3b54 - Sigstore transparency entry: 673061293
- Sigstore integration time:
-
Permalink:
boecht/birre@e50b0efa7d5858f15d50e57b4c92066c42d90954 -
Branch / Tag:
refs/tags/v4.0.0-alpha.2 - Owner: https://github.com/boecht
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-sign-publish.yml@e50b0efa7d5858f15d50e57b4c92066c42d90954 -
Trigger Event:
push
-
Statement type:
File details
Details for the file birre-4.0.0a2-py3-none-any.whl.
File metadata
- Download URL: birre-4.0.0a2-py3-none-any.whl
- Upload date:
- Size: 234.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11f1e01b47732f0522567a46f3ea8ccd3796dda1f8e039f0a1f3860a5325baba
|
|
| MD5 |
11ce98626379cd5930c57d990bfdebb1
|
|
| BLAKE2b-256 |
cc5b4c439a03ab01b9386c45be3ba592d076e827a0c51fad0c3a7971edd8329b
|
Provenance
The following attestation bundles were made for birre-4.0.0a2-py3-none-any.whl:
Publisher:
build-sign-publish.yml on boecht/birre
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
birre-4.0.0a2-py3-none-any.whl -
Subject digest:
11f1e01b47732f0522567a46f3ea8ccd3796dda1f8e039f0a1f3860a5325baba - Sigstore transparency entry: 673061303
- Sigstore integration time:
-
Permalink:
boecht/birre@e50b0efa7d5858f15d50e57b4c92066c42d90954 -
Branch / Tag:
refs/tags/v4.0.0-alpha.2 - Owner: https://github.com/boecht
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-sign-publish.yml@e50b0efa7d5858f15d50e57b4c92066c42d90954 -
Trigger Event:
push
-
Statement type: