DebugBundle
DebugBundle helps AI agents investigate production incidents with deterministic debug bundles, reproductions, health checks, and diagnostics. It exposes incident inspection, bundle retrieval, and ops management tools over MCP.
README
DebugBundle
Production debugging bundles for AI agents.
DebugBundle captures runtime failures, groups them into incidents, and publishes deterministic debug bundles for humans and AI agents.
Why DebugBundle?
Modern AI agents are useful only when they get enough trustworthy context. DebugBundle packages the facts around a production incident into a versioned bundle instead of leaving agents to scrape dashboards, logs, traces, and chat threads.
Key properties:
- Agent-native bundles: deterministic failure and improvement bundles with errors, requests, responses, logs, frontend context, deploy metadata, runtime details, and reproduction hints.
- Interface parity: API, CLI, and MCP expose the same incident, bundle, probe, webhook, alert, project, and automation workflows.
- Local-first setup: start without a cloud account by writing events to
.debugbundle/local/events/, then connect to DebugBundle Cloud when ready. - Safe SDKs: SDK failures are swallowed internally, sensitive fields are redacted before transport, and duplicate storms are suppressed locally.
- Self-hostable core: Compose-based stack for the web app, API, worker, Postgres, Redis, and S3-compatible object storage.
Quick Start
Choose the path that matches how you want to evaluate DebugBundle.
Cloud
Use Cloud when you are preparing a hosted deployment or want team-visible incidents, alerts, webhooks, GitHub automation, API access, and MCP access.
npm install -g @debugbundle/cli
debugbundle setup
debugbundle login
debugbundle connect
debugbundle connect creates or selects a cloud project, creates a write-only project token, and updates .debugbundle/local/connection.json. Put the shown project token in your hosted environment:
DEBUGBUNDLE_PROJECT_TOKEN=dbundle_proj_xxxxxxxxxxxx
Add the smallest SDK or ingestion path that matches your app, deploy it with the token configured, then verify ingestion:
debugbundle verify cloud --project-id proj_01HXYZ... --trigger-5xx
debugbundle incidents --source cloud
debugbundle inspect inc_01HXYZ...
See the full Cloud quickstart and connect-to-cloud guide.
Local-only
Use local-only mode when you want captured data and bundles to stay on the machine or storage volume where the SDK and CLI run.
npm install -g @debugbundle/cli
debugbundle setup --project-mode local-only
Initialize an SDK in local mode where supported, or use debugbundle watch for existing logs. After triggering a test error:
debugbundle process
debugbundle incidents --source local
debugbundle inspect inc_local_...
Local events are written under .debugbundle/local/events/; generated bundles are written under .debugbundle/bundles/. See the local-only guide.
Install an SDK
All SDKs follow the same universal interface: init, captureException, captureError, captureLog, captureRequest, captureMessage, setContext, probe, and flush.
| Runtime | Package | Install | Main docs |
|---|---|---|---|
| Node.js | @debugbundle/sdk-node |
npm install @debugbundle/sdk-node |
Node.js SDK |
| Browser | @debugbundle/sdk-browser |
npm install @debugbundle/sdk-browser |
Browser SDK |
| Python | debugbundle-python |
pip install debugbundle-python |
Python SDK |
| PHP | debugbundle/sdk-php |
composer require debugbundle/sdk-php |
PHP SDK |
| Java | com.debugbundle:debugbundle-spring-boot-starter |
Maven or Gradle dependency | Java SDK |
| .NET | DebugBundle.AspNetCore / DebugBundle.Sdk |
dotnet add package DebugBundle.AspNetCore |
.NET SDK |
| Go | github.com/debugbundle/debugbundle-go |
go get github.com/debugbundle/debugbundle-go |
Go SDK |
| Ruby | debugbundle |
gem install debugbundle |
Ruby SDK |
| Android | com.debugbundle:debugbundle-android |
Maven or Gradle dependency | Android SDK |
| iOS | DebugBundle |
Swift Package Manager or CocoaPods | iOS SDK |
| React Native | @debugbundle/sdk-react-native |
npm install @debugbundle/sdk-react-native |
React Native SDK |
| WordPress | debugbundle-wordpress |
GitHub Release ZIP | WordPress plugin |
Node.js
npm install @debugbundle/sdk-node
import { debugbundle } from '@debugbundle/sdk-node';
debugbundle.init({
projectToken: process.env.DEBUGBUNDLE_PROJECT_TOKEN,
environment: 'production',
service: 'api',
});
debugbundle.captureExceptions();
debugbundle.captureRejections();
Express, Fastify, Next.js, pino, winston, bunyan, local file transport, remote capture policy, probes, and browser relay handlers are supported.
Browser
npm install @debugbundle/sdk-browser
import { createDebugBundleBrowserSdk } from '@debugbundle/sdk-browser';
const debugbundle = createDebugBundleBrowserSdk();
debugbundle.init({
transportMode: 'relay',
endpoint: '/debugbundle/browser',
environment: 'production',
service: 'web',
});
For full-stack apps, prefer a backend browser relay so project tokens stay server-side. Same-origin relay paths are simplest; split frontend/backend deployments can use explicit browser relay mode with an absolute backend relay URL and backend origin allowlisting. Frontend-only deployments can send directly to DebugBundle Cloud with a dedicated public write-only token and an allowed-origin restriction. See Browser Relay Setup.
Python
pip install debugbundle-python
import os
import debugbundle
debugbundle.init(
project_token=os.environ["DEBUGBUNDLE_PROJECT_TOKEN"],
environment="production",
service="api",
)
debugbundle.capture_exceptions()
debugbundle.capture_logging()
Django, Flask, FastAPI, Python logging, structlog, loguru, local file transport, remote capture policy, probes, and browser relay helpers are supported.
PHP
composer require debugbundle/sdk-php
<?php
use DebugBundle\DebugBundle;
DebugBundle::init([
'projectToken' => getenv('DEBUGBUNDLE_PROJECT_TOKEN'),
'environment' => 'production',
'service' => 'api',
]);
DebugBundle::captureErrors();
DebugBundle::captureExceptions();
DebugBundle::captureShutdown();
Laravel, Symfony, Monolog, local file transport, remote capture policy, probes, and browser relay adapters are supported.
Ruby
gem install debugbundle
require "debugbundle"
DebugBundle.init(
project_token: ENV["DEBUGBUNDLE_PROJECT_TOKEN"],
environment: "production",
service: "api"
)
DebugBundle.capture_exceptions
Rails, Rack, Sidekiq, Ruby Logger, Semantic Logger, local file transport, remote capture policy, probes, and browser relay handlers are supported.
Java
<dependency>
<groupId>com.debugbundle</groupId>
<artifactId>debugbundle-spring-boot-starter</artifactId>
<version>0.1.0</version>
</dependency>
debugbundle:
project-token: ${DEBUGBUNDLE_PROJECT_TOKEN}
environment: production
service: api
project-mode: connected
The Spring Boot starter supports servlet request capture, MVC exception capture, Logback capture, remote config, probes, and an optional browser relay route.
Go
go get github.com/debugbundle/debugbundle-go
client := debugbundle.New(debugbundle.Config{
ProjectToken: os.Getenv("DEBUGBUNDLE_PROJECT_TOKEN"),
Environment: "production",
Service: "api",
})
defer func() { _ = client.Flush(context.Background()) }()
net/http, Gin, Echo, slog, zap, zerolog, local file transport, remote capture policy, probes, and browser relay handlers are supported.
WordPress
Install the plugin ZIP from the debugbundle-wordpress GitHub Release, then open Settings -> DebugBundle and save your project token. The plugin bundles backend PHP capture, frontend browser capture, and a WordPress REST relay so the project token stays server-side.
CLI, API, and MCP
The CLI is the daily operational entry point:
npm install -g @debugbundle/cli
debugbundle setup
debugbundle doctor
debugbundle verify local
debugbundle verify cloud --trigger-5xx
debugbundle incidents
debugbundle inspect <incident-id>
Automation can use the HTTP API directly or the MCP server for agent workflows:
- API reference: https://debugbundle.com/docs/api
- CLI reference: https://debugbundle.com/docs/cli
- MCP docs: https://debugbundle.com/docs/mcp
- Bundle schema: https://debugbundle.com/docs/bundles/schema
Marketplace-managed MCP clients can run npx @debugbundle/mcp and provide DEBUGBUNDLE_MEMBER_TOKEN in the MCP server environment.
Repository Layout
apps/
api/ Fastify ingestion and retrieval API
worker/ BullMQ processing worker for normalization, grouping, bundles, alerts, and webhooks
cli/ @debugbundle/cli command-line interface
mcp/ @debugbundle/mcp server for agent workflows
web/ React/Vite app for interactive project and incident management
packages/
auth/ Auth, sessions, token generation, token hashing
bundle-engine/ Deterministic bundle assembly
event-normalizer/ Event validation, normalization, classification, fingerprinting
log-parser/ CLI log ingestion parser registry
redaction/ Sensitive data scrubbing
retrieval-client/ Shared retrieval API client used by CLI and MCP
shared-types/ Zod schemas, TypeScript types, bundle/event contracts
storage/ Postgres, Redis, S3-compatible storage adapters and migrations
sdks/
debugbundle-js/ Local clone of the JS SDK repo
debugbundle-python/ Local clone of the Python SDK repo
debugbundle-php/ Local clone of the PHP SDK repo
debugbundle-java/ Local clone of the Java SDK repo
debugbundle-go/ Local clone of the Go SDK repo
debugbundle-wordpress/ Local clone of the WordPress plugin repo
debugbundle-ruby/ Local clone of the Ruby SDK repo
site/
Public docs, marketing, reference, and blog site clone
The SDKs are standalone repositories under the debugbundle GitHub organization. This core repository owns the product services, shared contracts, CLI/MCP surfaces, and core-owned shared JS packages.
Local Development
Use the Make targets so routine commands run in Docker-scoped environments.
make install
make infra-up
make infra-bootstrap
make dev
Local services:
| Service | Default |
|---|---|
| Web app | http://localhost:5291 |
| API | http://localhost:3003 |
| Postgres | localhost:5434 |
| Redis | localhost:6380 |
| LocalStack S3 | localhost:4567 |
Useful checks:
make lint
make typecheck
make test
make build
make ci
make dev requires DEBUGBUNDLE_PROBE_TRIGGER_SECRET and ANALYTICS_HASH_SECRET in .env. Start from .env.example, then keep local-only overrides in .env.local when needed.
Self-Hosting
The supported self-host bootstrap lives in deploy/selfhost/.
git clone https://github.com/debugbundle/debugbundle.git
cd debugbundle/deploy/selfhost
cp .env.example .env
docker compose up -d
The self-host stack includes the web app, API, worker, PostgreSQL, Redis, and LocalStack S3. See Self-Hosting and deploy/selfhost/README.md.
Documentation
- Public docs: https://debugbundle.com/docs
- Quickstart: https://debugbundle.com/docs/quickstart
- Installation: https://debugbundle.com/docs/installation
- SDKs: https://debugbundle.com/docs/sdks
- Agent workflows: https://debugbundle.com/docs/agent-workflows
- System overview: SYSTEM_OVERVIEW.md
- Architecture map: ARCHITECTURE_MAP.md
- Requirements: spec/requirements.md
- Acceptance criteria: spec/acceptance.md
- Public interfaces: contracts/public-interfaces.md
Release Model
The canonical public product release is the root debugbundle repository tag and GitHub Release (v*). Package-specific releases are separate:
cli-v*for@debugbundle/climcp-v*for@debugbundle/mcpshared-js-v*for@debugbundle/shared-typesand@debugbundle/redaction
Standalone SDK repositories publish and version their own release surfaces independently:
debugbundle-jsfor@debugbundle/sdk-nodeand@debugbundle/sdk-browserdebugbundle-pythonfordebugbundle-pythondebugbundle-phpfordebugbundle/sdk-phpdebugbundle-javafor Maven artifactsdebugbundle-gofor Go modulesdebugbundle-wordpressfor the WordPress plugin
The v1 release train publishes dependency roots before dependent wrappers:
- Publish
@debugbundle/shared-typesand@debugbundle/redactionfrom the core repo first. - Publish
@debugbundle/sdk-nodeand@debugbundle/sdk-browserfromdebugbundle-jsafter the matching shared-package version exists on npm. - Publish independent SDK and package families whose artifacts do not bundle another DebugBundle SDK.
- Publish React Native after the Android and iOS native SDK versions it delegates to are live and smoke-tested.
- Publish WordPress after the PHP SDK and browser SDK versions it requires are live and smoke-tested, then rebuild the bundled browser asset.
- Bump hosted dogfooding manifests only after the referenced registry versions exist.
- Create the canonical core GitHub Release after package-specific release workflows pass.
Our own hosted/source-deployed dogfooding surfaces intentionally consume published packages rather than implicit workspace links. After a successful registry publish, bump the pinned versions in the root package.json, hosted app apps/web/package.json, and public-site site/package.json before running hosted validation or deployment.
Contributing
Read CONTRIBUTING.md before opening a pull request. The short version:
- Keep app/package boundaries strict.
- Add or update tests for behavior changes.
- Run
make lint,make typecheck,make test, andmake buildbefore asking for review. - Update docs, contracts, and public interface references when behavior changes.
Security
Do not report vulnerabilities in public issues. Use GitHub private vulnerability reporting for this repository:
https://github.com/debugbundle/debugbundle/security/advisories/new
See SECURITY.md for scope and response expectations.
License
DebugBundle is licensed under AGPL-3.0-only. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.