A standalone research pipeline that searches the web, extracts claims via LLMs, accumulates evidence, and generates intelligence briefings.
https://github.com/davidbmar/intelligence-briefing-toolkit · private · shipped
The Intelligence Briefing Toolkit (IBT) is a Python-based framework for automating open-source intelligence (OSINT) workflows. It orchestrates web searching, content extraction, claim detection, and report synthesis using Claude (Anthropic). The system supports both one-off deep research queries and persistent, multi-pass projects that accumulate evidence over time to detect signals and contradictions. It exposes functionality through four interfaces: a CLI for scripting, a Python library for integration, a REST API for web services, and an MCP server for AI agent tool use.
pip install git+https://github.com/davidbmar/intelligence-briefing-toolkit.git export ANTHROPIC_API_KEY="sk-ant-..." export SERPER_API_KEY="..." ibt search "JFK assassination declassified 2025" --format json
flowchart TD
User[User/Agent] -->|CLI/API/MCP| Interface[Interface Layer]
Interface --> Pipeline[ResearchPipeline]
Pipeline --> Config[IntelConfig]
Pipeline --> Adapter[Source Adapter]
Adapter -->|Search| WebSearch[WebSearchTool]
Adapter -->|Fetch| WebContent[WebContentTool]
WebSearch -->|Serper/DDG| Internet[(Internet)]
WebContent -->|HTTP| Internet
Pipeline -->|Extract/Synthesize| LLM[Claude API]
Pipeline -->|Store| Evidence[(Local JSON Store)]
Evidence --> Pipeline
Built in Python with a modular adapter pattern for data sources. Core logic resides in `ResearchPipeline`, which coordinates `WebSearchTool` (Serper/DuckDuckGo) and `WebContentTool` (boilerplate stripping). LLM interactions are handled via the Anthropic SDK for claim extraction and synthesis. State management for projects uses local JSON files. The REST API is implemented with FastAPI, and the MCP server follows the Model Context Protocol specification for AI assistant integration.
sequenceDiagram
participant Client as Client (CLI/API)
participant Pipeline as ResearchPipeline
participant Adapter as WebSourceAdapter
participant Search as WebSearchTool
participant Fetch as WebContentTool
participant LLM as Claude API
participant Store as Evidence Store
Client->>Pipeline: execute research/project collect
Pipeline->>Adapter: search(queries)
Adapter->>Search: execute(queries)
Search-->>Adapter: raw JSON results
Adapter-->>Pipeline: parsed results (urls)
loop For each URL
Pipeline->>Adapter: fetch(url)
Adapter->>Fetch: execute(url)
Fetch-->>Adapter: raw content
Adapter-->>Pipeline: extracted text
Pipeline->>LLM: extract claims
LLM-->>Pipeline: structured claims
Pipeline->>Store: append/deduplicate evidence
end
Pipeline->>LLM: synthesize briefing/analyze signals
LLM-->>Pipeline: final report
Pipeline-->>Client: return result
Use IBT to automate competitive intelligence monitoring, academic literature reviews, or investigative journalism workflows. Integrate the Python library into existing data pipelines to enrich datasets with web-sourced context. Deploy the REST API as a backend for internal research dashboards. Connect the MCP server to Claude Desktop to allow natural-language triggered research agents that can persist findings across sessions.