The first MCP-native Open Source Intelligence framework for AI Agents.
Project description
OPENOSINT(1) — General Commands Manual
Legal notice: For authorised security research and investigation only.
Users are solely responsible for compliance with applicable law.
See DISCLAIMER.md.
NAME
openosint — Model Context Protocol server and CLI for Open Source Intelligence.
SYNOPSIS
openosint [-v] command [args ...]
openosint email ADDRESS [-t SECONDS]
openosint username HANDLE [-t SECONDS]
DESCRIPTION
openosint is a modular OSINT framework that exposes intelligence-gathering tools to large language models via the Anthropic Model Context Protocol (MCP). It also operates as a conventional command-line interface for direct human execution.
The framework is built on a non-blocking asynchronous runtime (Python asyncio).
All external binaries are invoked as managed subprocesses with hard timeout
enforcement. No LLM is embedded; openosint provides the tool surface that
an MCP-compatible client drives autonomously.
ARCHITECTURE
The project follows a strict three-tier separation:
| Layer | Path | Responsibility |
|---|---|---|
| Core tools | openosint/tools/ |
Async wrappers around external OSINT binaries. No I/O, no UI. |
| MCP server | openosint/mcp_server.py |
Translates core functions into MCP tool schemas. Routes LLM calls. |
| CLI | openosint/cli.py |
Human-facing interface. Calls core tools directly. |
No layer imports from a layer above it. The core tools are stateless and have no knowledge of MCP or argparse.
INSTALLATION
Requires Python 3.10 or later.
git clone https://github.com/OpenOSINT/OpenOSINT.git
cd OpenOSINT
pip install -e .
External dependencies (must be present in PATH):
| Binary | Purpose | Install |
|---|---|---|
holehe |
Email account enumeration | pip install holehe |
sherlock |
Username enumeration (300+ platforms) | pip install sherlock-project |
If a binary is absent, the corresponding tool returns a descriptive error string. The server and CLI remain operational for tools with satisfied dependencies.
COMMANDS
email ADDRESS [-t SECONDS]
Enumerate online services registered against ADDRESS using holehe. Default timeout: 120 seconds.
username HANDLE [-t SECONDS]
Enumerate platforms where HANDLE is registered using sherlock. Default timeout: 180 seconds.
Global flags:
-v, --verbose Enable debug-level logging to stderr.
-t, --timeout N Override default subprocess timeout (seconds).
CONFIGURATION
Claude Code
Register the MCP server after installation:
claude mcp add openosint python /absolute/path/to/OpenOSINT/openosint/mcp_server.py
Verify:
claude mcp list
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"openosint": {
"command": "python",
"args": ["/absolute/path/to/OpenOSINT/openosint/mcp_server.py"]
}
}
}
EXAMPLES
Enumerate services registered against an email address:
$ openosint email target@example.com -t 60
Search for a username across all supported platforms:
$ openosint username johndoe99
Enable verbose output:
$ openosint -v email target@example.com
Agentic execution via Claude Code after MCP registration:
$ claude
> Investigate target@example.com. If you find an associated username,
trace it across other platforms and compile a report.
FILES
| Path | Description |
|---|---|
openosint/mcp_server.py |
MCP server entry point (stdio transport). |
openosint/cli.py |
CLI entry point. |
openosint/tools/search_email.py |
Email enumeration module. |
openosint/tools/search_username.py |
Username enumeration module. |
openosint/tools/exceptions.py |
Shared exception hierarchy. |
pyproject.toml |
Project metadata and build configuration (PEP 621). |
DISCLAIMER.md |
Legal notice and ethical use policy. |
EXIT STATUS
| Code | Meaning |
|---|---|
| 0 | Successful execution. |
| 1 | General error (invalid arguments, tool failure). |
| 130 | Terminated by SIGINT (Ctrl-C). |
AUTHORS
Developed by Tommaso Bertocchi.
LICENSE
MIT License. See LICENSE.
OpenOSINT 2.0.0 — May 10, 2026
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 openosint-2.1.0.tar.gz.
File metadata
- Download URL: openosint-2.1.0.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bac31c65946d878d0ecc367b4ad9093b787e62c758ab3b59263780c9bd61f4e1
|
|
| MD5 |
add2af16df1f49712bfdc238086bd280
|
|
| BLAKE2b-256 |
d7b194376b1d13de31ad40b6ee9a01d7583327bc54d46260ef25409897684fb1
|
Provenance
The following attestation bundles were made for openosint-2.1.0.tar.gz:
Publisher:
release.yml on OpenOSINT/OpenOSINT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openosint-2.1.0.tar.gz -
Subject digest:
bac31c65946d878d0ecc367b4ad9093b787e62c758ab3b59263780c9bd61f4e1 - Sigstore transparency entry: 1497532643
- Sigstore integration time:
-
Permalink:
OpenOSINT/OpenOSINT@42b443afa07a395a4194699c89adf000b80c9aea -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/OpenOSINT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@42b443afa07a395a4194699c89adf000b80c9aea -
Trigger Event:
push
-
Statement type:
File details
Details for the file openosint-2.1.0-py3-none-any.whl.
File metadata
- Download URL: openosint-2.1.0-py3-none-any.whl
- Upload date:
- Size: 20.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eb90ac5e18c1945e68048b536db6197824760e6d8697c6b7383e2d282619b26
|
|
| MD5 |
93b08009651b2f396d0df067e45e5aaa
|
|
| BLAKE2b-256 |
150956b8c16f76f56717c304b2bac5a3ec451fe63182edac0056a015af453c11
|
Provenance
The following attestation bundles were made for openosint-2.1.0-py3-none-any.whl:
Publisher:
release.yml on OpenOSINT/OpenOSINT
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openosint-2.1.0-py3-none-any.whl -
Subject digest:
7eb90ac5e18c1945e68048b536db6197824760e6d8697c6b7383e2d282619b26 - Sigstore transparency entry: 1497532797
- Sigstore integration time:
-
Permalink:
OpenOSINT/OpenOSINT@42b443afa07a395a4194699c89adf000b80c9aea -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/OpenOSINT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@42b443afa07a395a4194699c89adf000b80c9aea -
Trigger Event:
push
-
Statement type: