osint-workbench
Enables scheduled collection of RSS/Atom feeds into immutable evidence storage, with raw/normalized versioning and searchable open-source information.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
OSINT Workbench
A self-hostable integration workbench for collecting, preserving and searching open-source information, with a read-only MCP interface for AI assistants. It combines a Python application, PostgreSQL, immutable evidence storage and optional local inference or explicitly governed cloud enrichment.
Development status: collection, evidence reads, local retrieval, enrichment, recovery and supervised service paths are implemented within documented bounds. The complete reference platform remains unfinished. STATUS.md separates implemented behavior, revision-bound verification and remaining acceptance; the roadmap and backlog retain the full intended scope.
What works today
Capability | Implemented scope | Important boundary |
Acquisition | Scheduled RSS/Atom, opt-in static HTML, bounded JSON-page APIs, a KEV-format catalogue adapter and bearer/API-key or OAuth client-credentials authentication | Endpoints and credentials are supplied externally. Restricted licensed content, paid queries, general article/PDF extraction and JavaScript rendering remain open. |
Evidence and jobs | Immutable raw/normalized versions, current document heads, content-addressed objects, integrity checks and leased/fenced work | The generic worker processes |
Search | PostgreSQL lexical search; optional local ONNX embeddings, token-aware retrieval chunks, exact pgvector/RRF hybrid search and pair reranking | Models require explicit manifests and local artifacts. Pretrained usefulness, independent relevance/abstention acceptance, ANN and large-corpus operation remain open. |
Enrichment and cited products | Native local generation, an opt-in local chat API or an explicit cloud extraction route, typed assertion proposals, original-text quotations, append-only operator review and cited digests | A matching quote does not establish entailment. Reviews require separate database credentials; actor labels do not prove human independence. Richer entity resolution and analytical briefings remain open. |
Cloud governance | Deny-by-default route/data policy, per-currency reservations, uncertain-outcome tracking and separately authorized operator settlement | Provider facts are declarations. Native vendor adapters, streaming, batches, invoice reconciliation and live-provider/sovereignty acceptance remain open. |
Lifecycle and recovery | Retention, holds, logical retirement, private checkpoint/isolated restore, reviewed orphan GC and scoped SQL purge | Full-host/PITR recovery, backup expiry and all-copy erasure remain open; accounting and external copies have separate retention. |
Services and health | Non-root systemd templates for feed/API collection, bounded chunk-worker ticks and aggregate health; opt-in disposable Compose core test | Deployment needs explicit accounts, storage, secrets and thresholds. Complete stack provisioning, monitoring/alert delivery and operational acceptance remain open. |
Assistant access | Seven bounded read-only MCP tools over local stdio, including configured local search inference | No acquisition, generation, job-control, arbitrary SQL/path/URL or host-administration tools. Authenticated remote MCP and independent assistant-client acceptance remain open. |
The vulnerability profile currently provides an offline advisory-observation contract and KEV-format document ingestion. A complete applicability/prioritization engine and regulatory-intelligence profile remain roadmap work. Source claims, catalogue membership and model output do not establish target exposure or legal applicability.
Related MCP server: Proofpage MCP Server
Start with the core
Native Ubuntu installation uses the distro Python in a virtual environment: Ubuntu 24.04/Python 3.12 or Ubuntu 26.04/Python 3.14. See runtime support for package prerequisites. From a checkout, this core smoke check needs no database, model, cloud account or configured sources:
uv sync --locked --no-dev --python /usr/bin/python3
.venv/bin/osint-workbench collect --config config/sources.example.jsonExpected output: {"status": "unconfigured", "sources": 0}. Dependency installation
uses the configured package registry; this command performs no source acquisition.
The bundled source list is empty. Keep real source URLs, credentials, prompts,
private inventories and deployment configuration outside Git and public CI.
For a working database-backed installation, follow deployment
and the supervised profile. Provision PostgreSQL 18,
separate migration/collector/writer/reader identities and persistent evidence
storage before running migrations or workers. Optional hybrid retrieval adds
pgvector and the retrieval dependency extra; it also needs explicitly selected
model artifacts, manifests and an activated compatible index generation.
No model or provider is selected or downloaded automatically. Remote enrichment requires an explicit route, data class, private policy and credential. There is no silent cloud fallback. An MCP client can disclose returned content to its own provider, even when this application runs locally. A verified hash establishes byte integrity; retrieved content remains untrusted.
Operator workflows
osint-workbench diagnose reports sanitized runtime and configuration-presence
facts without application I/O. Add --check-reader for an explicit reader-authority
and schema check; this is not readiness or deployment qualification. See
runtime diagnostics.
Task | Procedure |
Schedule feeds or authenticated APIs | Feed acquisition, API acquisition and secret custody, OAuth, KEV format |
Process supported jobs and inspect failures | |
Configure embeddings, hybrid retrieval or reranking | |
Generate, review and read cited products | |
Retire data, recover or remove retained objects/rows | |
Connect an assistant |
Use only the credentials needed by each process. Collection never falls back to writer credentials; the MCP server rejects broader reader authority. Enforce read-only evidence access at the OS/mount boundary as well as in Python. Recovery, lifecycle, purge and accounting have separately scoped credentials and effects. Private checkpoints are not consumer exports.
Operator configuration/import paths must name regular files, with no final symlink. Feed configuration is capped at 8 MiB; text import is capped at 4,000,000 UTF-8 bytes and 1,000,000 Unicode code points. See the file-admission boundary.
Development and verification
CPython 3.12–3.14 is permitted. Required installed/native CI qualifies Ubuntu 24.04/Python 3.12 and Ubuntu 26.04/Python 3.14. Python 3.13 has separate optional weekly/manual coverage; Python 3.15 has a manual dependency-only probe and remains outside the package bound. Neither optional profile gates merges or main-build signing.
uv sync --locked --extra retrieval --python /usr/bin/python3
.venv/bin/ruff check .
.venv/bin/ruff format --check .
.venv/bin/python scripts/check_repository.py
.venv/bin/python scripts/check_static.py
.venv/bin/python -m pytest -m 'not integration' --import-mode=importlib
uv build --python /usr/bin/python3 --build-constraints build-constraints.txt --require-hashes
.venv/bin/python scripts/check_publication.py --artifacts distThese checkout checks are development feedback. CI installs the built wheel into
a separate environment and requires the full native suite against disposable
PostgreSQL/pgvector, HTTP/TLS/Unix transports and synthetic ONNX/GGUF fixtures.
CONTRIBUTING.md documents the exact procedure, pinned native
dependency and --require-integration gate. Its database fixture must be named
ow_test; recovery tests create/drop their own ow_test_restore_ databases.
Never use operational storage or resynchronize an installed-wheel test environment.
Separate disposable service tests validate systemd and credential isolation.
Synthetic execution tests establish bounded contracts. They do not establish pretrained semantic quality, representative capacity, GPU support, actual-provider behavior, full-host recovery or complete acceptance of all 51 roadmap scenarios. Current results must identify their tested source and artifact. See STATUS.md, the verification programme and the alignment review.
Engineering and attribution
This is AI-assisted integration work. Human responsibility includes requirements, design decisions, review, validation and operations. Existing libraries supply database, parsing, model-runtime and protocol capabilities; this project does not claim original model research or production assurance.
The engineering baseline uses ADRs, STPA-derived constraints, explicit trust boundaries, least privilege, bounded work, failure/recovery tests, locked builds and publication review. NIST SSDF and selected OWASP ASVS controls are engineering references; the control evidence records bounded coverage and gaps, without a certification or regulatory-conformance claim. Signed main-build evidence binds tested bytes and workflow identity; it does not establish vulnerability freedom or complete redistribution clearance.
Read AGENTS.md, architecture, decisions, the security policy and secure development for the governing contracts. The documentation map distinguishes current procedures, target specifications and historical evidence.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
Read-only Remote MCP for externally grounded AI agent trust receipts.
Read-only search of 2,189 AI agent tools (MCP servers, x402 APIs) with daily automated trust scores.
Team docs served to AI agents over MCP - search, Markdown reads, version pinning, read audit.
Related MCP Servers
- FlicenseAqualityBmaintenanceA read-only MCP server that enables AI clients to search a knowledge base and retrieve complete source documents via narrow search and fetch tools.2-
- AlicenseCqualityBmaintenanceEnables existing AI assistants to search locally collected web evidence, retrieve cited results, exact quotes, revision IDs, and capture timestamps, and verify source listings through MCP.361MIT
- AlicenseNot gradedqualityBmaintenanceProvides AI assistants with read-only access to a curated, source-backed mentor knowledge base, enabling mentor matching, evidence retrieval, source lookup, and situational guidance preparation through six MCP tools.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search and read the files a user can access, including full-text matches inside PDFs and office documents, through read-only MCP tools.MIT