Model Context Protocol server for BitSight security ratings
Project description
BiRRe
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
-
Export your BitSight API key.
-
Start the MCP server with uvx (install-free PyPI run):
export BITSIGHT_API_KEY="your-bitsight-api-key" uvx birre
-
Point your MCP-compatible client/LLM at the server endpoint. Start with
company_searchto obtain GUIDs, then callget_company_ratingor run the risk-manager workflows. -
Use
--helpfor 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.toml → config.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
- docs/CLI.md – full command reference, configuration helpers, option tables.
- docs/ROADMAP.md – current release summary plus upcoming milestones.
- docs/ARCHITECTURE.md – FastMCP layering and BitSight integration design.
- docs/SECURITY_VERIFICATION.md – verifying signed releases (Sigstore, SBOM, PyPI).
- docs/apis/ – curated BitSight endpoint overviews (v1/v2).
- CONTRIBUTING.md – development workflow, pytest/pyright instructions, PR expectations.
- SECURITY.md – reporting process and supported-release policy.
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
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.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca43e68b33747b558d63d0e748e9f59b1dfa24bd27c063d424555a3664eb5b8e
|
|
| MD5 |
e2ede0a8d09831586fc83cd5d0c2f246
|
|
| BLAKE2b-256 |
a0a69336c8f4a0bc342e4cc27379fc225f82471cfd29716c0540f46ddacba15c
|
Provenance
The following attestation bundles were made for birre-4.0.0.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.0.tar.gz -
Subject digest:
ca43e68b33747b558d63d0e748e9f59b1dfa24bd27c063d424555a3664eb5b8e - Sigstore transparency entry: 708417921
- Sigstore integration time:
-
Permalink:
boecht/birre@278c18f42da038c7ea5de0ccc8d6e182330cb203 -
Branch / Tag:
refs/tags/v4.0.0 - Owner: https://github.com/boecht
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-sign-publish.yml@278c18f42da038c7ea5de0ccc8d6e182330cb203 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c65d486e52ce9c1ee4aa70bb601208b44138669dff7f9276e2199246da204a69
|
|
| MD5 |
573c407062706f9ccf24ae9026dfe1fb
|
|
| BLAKE2b-256 |
20eee43e3b0feac27a8a002912b082b16fae407124c8eff53ad95c80ee6826a4
|
Provenance
The following attestation bundles were made for birre-4.0.0-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.0-py3-none-any.whl -
Subject digest:
c65d486e52ce9c1ee4aa70bb601208b44138669dff7f9276e2199246da204a69 - Sigstore transparency entry: 708417923
- Sigstore integration time:
-
Permalink:
boecht/birre@278c18f42da038c7ea5de0ccc8d6e182330cb203 -
Branch / Tag:
refs/tags/v4.0.0 - Owner: https://github.com/boecht
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-sign-publish.yml@278c18f42da038c7ea5de0ccc8d6e182330cb203 -
Trigger Event:
push
-
Statement type: