Provides tools for automated GitHub repository management, including pull request and run evidence triage, issue drafting, and release workflows such as generating release notes and managing asset uploads.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OmniAudit MCPAudit the performance of https://example.com and generate a report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OmniAudit MCP
Single self-hosted MCP connector that ships three production modules:
AuditLens(auditlens.*): GitHub PR/run evidence triage and issue drafting.SiteLint(sitelint.*): live URL audit and report generation.Release Butler(releasebutler.*): release asset checksums and release-note workflows.
It exposes one MCP endpoint at POST /mcp and includes a lightweight dashboard at GET /ui.
Features implemented
MCP tools across all required namespaces (
auditlens,sitelint,releasebutler,core).Backward-compatible
releasebutler.generate_notesextensions:optional
from_tagoptional
to_tagoptional
fallback_window
releasebutler.create_releaselocal file asset upload (assets[]) with per-file outcome metadata:uploaded_assets[]failed_assets[]
Object storage hardening:
localbackends3backend with dual-read behavior (new writes to S3, legacy local refs still readable)
Policy controls:
repo write allowlist
URL allowlist/denylist
write-operation confirmation token gate
rate limiting for scan submissions and GitHub writes
Receipt-first write operations with immutable output references.
Append-only audit log storage with hashed tool inputs.
Observability baseline:
structured logs (
LOG_FORMAT=json|plain)optional OTLP traces (
OTEL_ENABLED=true)Prometheus
/metricsendpoint (PROMETHEUS_ENABLED=true)
GitHub auth providers:
fine-grained PAT
GitHub App installation token flow
S3/MinIO-compatible object storage support for artifacts and reports.
SQL storage for jobs, receipts, audit logs, and secret records.
Repository layout
apps/mcp_server- FastAPI MCP server and dashboard endpointspackages/omniaudit- domain modules, runtime, security, storageservices/worker- Celery worker and async SiteLint tasktests- unit + integration testsinfra- Dockerfiles
Architecture diagram
Support matrix
Capability | Status | Notes |
MCP tool registry and dispatch | Ready | Backward-compatible tool names and required args maintained |
Object storage backends | Ready |
|
Release asset uploads | Ready | Local file path assets supported |
Live smoke automation | Ready |
|
SiteLint wave 1 optional args | Ready |
|
AuditLens wave 1 optional args | Ready |
|
Release Butler wave 1 optional args | Ready |
|
Governance baseline | Ready | CI workflows, templates, CODEOWNERS, policy docs |
Quickstart (local)
Create env and install dependencies:
Configure environment:
Bootstrap local data folders and key:
Run API:
Optional SiteLint browser stack:
Health check:
Quickstart (Docker Compose)
API endpoint: http://localhost:8080/mcp
Metrics endpoint: http://localhost:8080/metrics
ChatGPT Connector setup
In ChatGPT Developer Mode connector modal:
Name:
OmniAudit MCPMCP Server URL:
https://<your-host>/mcpAuthentication:
set to
NoneifMCP_AUTH_MODE=noneset to API key flow if you enable
MCP_AUTH_MODE=api_key
Storage backend modes
Default mode is local:
S3/MinIO mode with dual-read, S3-write:
Behavior in s3 mode:
new immutable objects are written to
s3://<bucket>/<prefix>/<sha256>...existing local file refs continue to resolve via fallback reads
no migration is required for existing receipt
result_refvalues
MCP examples
List tools:
Start site scan:
Write operation risk gate flow (auditlens.create_issue):
Call without
confirmation_tokenand readstructuredContent.confirmation_token.Repeat call with that token to execute write and receive
receipt_id.
Generate tag-to-tag notes:
Create release with local assets (confirmation flow):
First call
releasebutler.create_releasewithoutconfirmation_token.Re-call with returned
confirmation_tokenand local file paths inassets[].Inspect
uploaded_assetsandfailed_assetsinstructuredContent.
Live smoke workflow
Run production-style dual-read/S3-write smoke checks locally:
Outputs:
artifacts/smoke/<timestamp>/summary.jsonartifacts/smoke/<timestamp>/responses/*.json
Key assertions:
legacy local refs remain readable after switching to S3 backend
new writes become
s3://...release upload confirmation flow succeeds with local assets
metrics endpoint exposes hardening counters
Observability
Structured logging:
Optional OTLP tracing:
Prometheus metrics:
Exposed series include:
omniaudit_tool_calls_total{tool,status}omniaudit_tool_latency_seconds{tool}omniaudit_write_gate_denied_total{tool}omniaudit_rate_limit_denied_total{bucket}
Tests
Notes
sitelint.start_scanruns inline by default for deterministic single-user behavior.Set
SITELINT_ASYNC_MODE=trueand runworkerservice to process scan jobs via Celery.GitHub API operations require valid credentials in
.env.In Docker + MinIO setups, keep
S3_FORCE_PATH_STYLE=truefor compatibility.For roadmap and release-note policy, see
docs/ROADMAP.mdanddocs/CHANGELOG_POLICY.md.
See docs/ARCHITECTURE.md and docs/OPERATIONS.md for details.