OTInstaller
MCPB · OT_0.16.1_LINUX_AMD64.MCPB · 6 COMPONENTS
Install and run open-source OSINT tools in a local sandbox, asking before runs that touch a target.
Last scanned (18 hours ago)
Scores higher than 78% of MCPB servers
Category Security
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 10 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability81
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 2956 tokens (~92/item across 32 items; 25 tools + 7 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management47
- Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
- Package version: 0.15.0 → 0.16.1 functional
- Package version: 0.15.0 → 0.16.0 functional
- 23 Oct 26 0
- Package version: 0.13.1 → 0.15.0 functional
- Package version: 0.13.1 → 0.14.0 functional
- 22 Oct 26 +1
- Tool safety: pass → unverified ▼ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Schema quality: 100 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Stability: unverified → 0.03 ▲ functional
- Package version: 0.13.0 → 0.13.1 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed mcpb/https://github.com/OTInstaller/ot/releases/download/v0.16.1/ot_0.16.1_linux_amd64.mcpb@0.16.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_run Stop a run ~48
Stop a run or batch this session started. Partial output is kept. A run that already ended is left alone and its status returned.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | a run_id or batch_id |
| Name | Type | Req | Description |
|---|---|---|---|
| already_finished | boolean | – | – |
| id | string | yes | – |
| status | string | yes | – |
No examples provided.
detect_type Detect a target's type ~57
What kind of target a string is, as ot auto would guess: url, ip, email, phone, domain, else username.
| Name | Type | Req | Description |
|---|---|---|---|
| target | string | yes | a username, domain, email address, phone number, IP address or URL |
| Name | Type | Req | Description |
|---|---|---|---|
| input_type | string | yes | – |
| prefix | string | yes | the ot run shorthand, such as d: for a domain |
No examples provided.
diff_runs Compare two runs ~66
What changed between the two most recent saved runs of a tool against a target: entities and output lines added and removed.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | – |
| target | string | yes | the target both runs were against |
| tool | string | yes | the tool, namespace/name or name |
| Name | Type | Req | Description |
|---|---|---|---|
| added | null|array | yes | – |
| added_entities | null|array | yes | – |
| newer_date | string | yes | – |
| newer_file | string | yes | – |
| older_date | string | yes | – |
| older_file | string | yes | – |
| removed | null|array | yes | – |
| removed_entities | null|array | yes | – |
No examples provided.
doctor Check this machine ~26
Whether Docker (or Podman), cosign, the keychain and the registry are available.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| checks | null|array | yes | – |
| ok | boolean | yes | – |
No examples provided.
extract_indicators Extract indicators ~58
Emails, domains, IP addresses, URLs and entities found across a tool's saved runs, or a case's.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | scan the runs in this case |
| tool | string | – | scan this tool's saved runs |
| Name | Type | Req | Description |
|---|---|---|---|
| domains | null|array | yes | – |
| emails | null|array | yes | – |
| entities | object | yes | – |
| ips | null|array | yes | – |
| urls | null|array | yes | – |
No examples provided.
get_batch Read a batch ~67
The rows of a run_all or run_playbook batch: each tool's status, entity count, first entities and run_id. While it runs, finished rows are filled in and the rest are pending.
| Name | Type | Req | Description |
|---|---|---|---|
| batch_id | string | yes | the batch_id from run_all or run_playbook |
| Name | Type | Req | Description |
|---|---|---|---|
| batch_id | string | yes | – |
| case | string | – | – |
| note | string | yes | – |
| rows | null|array | yes | – |
| status | string | yes | running, complete (every run completed), failed, interrupted or planned (dry_run) |
| summary | object | yes | – |
No examples provided.
get_consent_status Check whether a run needs consent ~202
What would happen if run_tool were called with these arguments: allowed without asking, the person asked, or refused (and why). Asks nobody and runs nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | save the run under this case, to group an investigation's runs |
| consent_token | string | – | only after the person said yes to the summary of a consent_required error for this exact call |
| input_type | string | – | the type of target (email, username, domain, ...); guessed when left out |
| inputs | object | – | input values by input name; get_tool lists the inputs |
| target | string | – | instead of inputs: one target, filled into the tool's input of input_type |
| tool | string | yes | the installed package, namespace/name |
| wait_seconds | integer | – | how long to wait for the result before returning a run_id to poll with get_run (default 60, at most 300) |
| Name | Type | Req | Description |
|---|---|---|---|
| class | string | – | – |
| effects | null|array | – | – |
| reason | string | yes | – |
| verdict | string | yes | allow: runs without asking; ask: the person will be asked; refuse: it won't run |
No examples provided.
get_playbook Get a playbook ~39
One playbook: the input types it is for, its tools and which are installed.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | the playbook's name |
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | yes | – |
| description | string | yes | – |
| inputs | null|array | yes | the input types it is meant for, the main one first; empty when the playbook doesn't say |
| name | string | yes | – |
| source | string | yes | – |
| tools | null|array | yes | – |
No examples provided.
get_run Read a saved run ~146
A run's result: its status and provenance, the entities it found (paged), a deduplicated summary of the indicators, or its raw output. Also reports runs still going.
| Name | Type | Req | Description |
|---|---|---|---|
| include_raw | boolean | – | also return the tool's raw output, cut to fit |
| limit | integer | – | entities per page, 1 to 200 (default 50) |
| offset | integer | – | – |
| run_id | string | yes | the run, from run_tool, list_runs or a batch |
| view | string | – | entities (default): the entities, paged; summary: emails, domains, IPs, URLs and entity values found, deduplicated |
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | null|object | – | – |
| entities | null|array | – | – |
| entities_total | integer | yes | – |
| note | string | yes | – |
| offset | integer | yes | – |
| output_sha256 | string | – | – |
| raw | string | – | – |
| raw_cut | boolean | – | – |
| run | object | yes | – |
| summary | null|object | – | – |
| warnings | null|array | – | – |
No examples provided.
get_tool Get a tool ~75
Everything needed to run a tool: its inputs (names, types, defaults), what it finds, the API keys it needs and whether they are set, its ethics flags and network access, and whether a run will need the person's consent. Works for installed and registry tools.
| Name | Type | Req | Description |
|---|---|---|---|
| tool | string | yes | the package as namespace/name |
| Name | Type | Req | Description |
|---|---|---|---|
| consent_class | string | yes | passive runs need no consent; networked, target and personal runs ask the person |
| deprecated | string | – | – |
| effects | null|array | yes | what a run does, in plain words |
| ethics | null|object | – | – |
| homepage | string | – | – |
| inputs | null|array | yes | – |
| installed | null|object | – | – |
| license | string | – | – |
| network | null|object | – | – |
| outputs | null|array | yes | – |
| outputs_detail | null|array | – | what the tool's entities carry: descriptions and attributes, when the publisher gives them |
| ref | string | yes | – |
| registry | null|object | – | the registry's listing: signed, verified publisher, health, installs |
| run_tool_example | object | – | – |
| secrets | null|array | yes | – |
| summary | string | yes | – |
| test_input | object | – | – |
| timeout_seconds | integer | yes | – |
| typical_seconds | integer | – | how long a run usually takes |
| unavailable | string | – | – |
| version | string | yes | – |
No examples provided.
install_tool Install a tool ~151
Install a published tool: pull its Docker image by digest and verify its cosign signature, or fetch its Python wheel by SHA-256 and build it into a sandbox image. Agents can't install yanked, failed, broken or local packages, or a Docker image whose signature can't be verified. On an installed tool it updates to the latest version (or the one named), saying so when it asks, but never moves a version the person held. Asks the person first unless the policy allows installs.
| Name | Type | Req | Description |
|---|---|---|---|
| consent_token | string | – | only after the person said yes to the summary of a consent_required error for this exact call |
| tool | string | yes | the package, namespace/name or namespace/name@version |
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | string | yes | – |
| from_backup | boolean | yes | – |
| held | boolean | yes | – |
| installed_at | string | yes | – |
| native | boolean | yes | – |
| previous | string | – | the version an update replaced |
| ref | string | yes | – |
| runtime | string | yes | – |
| signer | string | – | – |
| status | string | yes | installed, updated or already_installed |
| version | string | yes | – |
No examples provided.
key_setup Help the person set up API keys ~96
The API keys the named tools (or all installed tools) declare: what each is, where to get it, what it costs, whether it is set, and the command the person runs in their own terminal to store it. You can't store keys: show the person the command, and never ask them for a key's value.
| Name | Type | Req | Description |
|---|---|---|---|
| tools | null|array | – | the tools, as namespace/name; all installed tools when empty |
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | what the person runs in their own terminal to set the keys up |
| keys | null|array | yes | – |
| missing | null|array | – | keys that are not set yet |
| note | string | yes | – |
No examples provided.
list_installed List installed tools ~54
The tools installed on this machine, with their versions, the exact image digest or wheel hash, whether the person held a version, and the registry's latest version (checked at most daily) with whether an update is available.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| installed | null|array | yes | – |
| latest_checked_at | null|string | – | – |
No examples provided.
list_playbooks List playbooks ~40
Named sets of tools run together against one target, bundled or the person's own: the input types each is for, and which of their tools are installed.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| playbooks | null|array | yes | – |
No examples provided.
list_runs List saved runs ~88
Saved runs, newest first, optionally of one tool, against one target, or in one case.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | only runs saved under this case |
| limit | integer | – | newest first, at most this many (default 20) |
| target | string | – | only runs against this target |
| tool | string | – | only runs of this tool (namespace/name or name) |
| Name | Type | Req | Description |
|---|---|---|---|
| runs | null|array | yes | – |
No examples provided.
list_types List input and entity types ~38
The input types tools take, the entity types they find and what each means, and the pivot map: which input types each entity type can feed.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| descriptions | object | yes | – |
| entity_types | null|array | yes | – |
| input_types | null|array | yes | – |
| pivots | object | yes | which input types each entity type can feed (spec/pivots.json) |
No examples provided.
read_guide Read a guide page ~65
One page of a guide, as Markdown, with the list of its pages and the tools it uses.
| Name | Type | Req | Description |
|---|---|---|---|
| guide | string | yes | the guide, namespace/name or namespace/name@version |
| page | string | – | the page path from pages; the first page by default |
| Name | Type | Req | Description |
|---|---|---|---|
| body_markdown | string | yes | – |
| next | string | – | – |
| pages | null|array | yes | – |
| path | string | yes | – |
| ref | string | yes | – |
| related_tools | null|array | – | – |
| title | string | yes | – |
| version | string | yes | – |
No examples provided.
run_all Run every tool on a target ~236
Run every installed tool that takes the target (or the ones named), a few at a time, with one consent question for the whole set. Use dry_run first to see what would run. Returns a batch_id for get_batch if it takes longer than wait_seconds.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | save the runs under this case |
| consent_token | string | – | only after the person said yes to the summary of a consent_required error for this exact call |
| dry_run | boolean | – | list what would run, and what would need consent, without running anything |
| input_type | string | – | username, domain, email, phone, ip or url; guessed when left out |
| parallel | integer | – | how many run at once (default and maximum: max_parallel in the policy) |
| target | string | yes | the target every tool runs against |
| tools | null|array | – | only these installed tools (default: every installed tool that takes the target) |
| wait_seconds | integer | – | how long to wait before returning a batch_id to poll with get_batch (default 60, at most 300) |
| Name | Type | Req | Description |
|---|---|---|---|
| batch_id | string | yes | – |
| case | string | – | – |
| note | string | yes | – |
| rows | null|array | yes | – |
| status | string | yes | running, complete (every run completed), failed, interrupted or planned (dry_run) |
| summary | object | yes | – |
No examples provided.
run_playbook Run a playbook ~224
Run a playbook (a named set of tools) against a target, like run_all limited to its tools. Its tools must be installed; install_tool installs them, and dry_run lists which are missing.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | default: the playbook's own case |
| consent_token | string | – | only after the person said yes to the summary of a consent_required error for this exact call |
| dry_run | boolean | – | list what would run, what would need consent and what is not installed, without running anything |
| input_type | string | – | username, domain, email, phone, ip or url; guessed when left out |
| name | string | yes | the playbook; list_playbooks lists them |
| parallel | integer | – | how many run at once (default and maximum: max_parallel in the policy) |
| target | string | yes | the target its tools run against |
| wait_seconds | integer | – | how long to wait before returning a batch_id to poll with get_batch (default 60, at most 300) |
| Name | Type | Req | Description |
|---|---|---|---|
| batch_id | string | yes | – |
| case | string | – | – |
| note | string | yes | – |
| rows | null|array | yes | – |
| status | string | yes | running, complete (every run completed), failed, interrupted or planned (dry_run) |
| summary | object | yes | – |
No examples provided.
run_tool Run a tool ~250
Run an installed tool in its sandbox and save the result. Give inputs by name, or one target with its type. Passive tools run straight away; tools that touch a target, go online, use the person's keys or involve a person ask the person first (or return consent_required with a token to use only after they say yes). Waits up to wait_seconds, then returns a run_id for get_run.
| Name | Type | Req | Description |
|---|---|---|---|
| case | string | – | save the run under this case, to group an investigation's runs |
| consent_token | string | – | only after the person said yes to the summary of a consent_required error for this exact call |
| input_type | string | – | the type of target (email, username, domain, ...); guessed when left out |
| inputs | object | – | input values by input name; get_tool lists the inputs |
| target | string | – | instead of inputs: one target, filled into the tool's input of input_type |
| tool | string | yes | the installed package, namespace/name |
| wait_seconds | integer | – | how long to wait for the result before returning a run_id to poll with get_run (default 60, at most 300) |
| Name | Type | Req | Description |
|---|---|---|---|
| artifact | null|object | – | – |
| consent | string | – | how the run was allowed: policy, elicitation, session, token or sandbox |
| duration_ms | integer | – | – |
| entities | null|array | yes | – |
| entities_total | integer | yes | – |
| error | string | – | – |
| exit_code | null|integer | – | – |
| note | string | yes | – |
| output | null|object | – | – |
| raw | string | – | the tool's output, cut to fit, when it gave no entities |
| raw_cut | boolean | – | – |
| run_id | string | yes | – |
| sandbox | boolean | – | true when sandbox mode ran the tool on its own test input instead of the target given |
| status | string | yes | running, complete, failed (the tool exited non-zero), timeout, interrupted or error |
| tool | string | yes | – |
| truncated | boolean | – | only some entities fit; read the rest with get_run |
| warnings | null|array | – | – |
No examples provided.
search_guides Search guides ~71
Search the registry's investigation guides (methods, checklists, references), by words, target type or level.
| Name | Type | Req | Description |
|---|---|---|---|
| input_type | string | – | guides about this kind of target |
| level | string | – | beginner, intermediate or advanced |
| limit | integer | – | – |
| query | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| next_cursor | string | – | – |
| results | null|array | yes | – |
| total | integer | – | – |
No examples provided.
search_tools Search tools ~226
Search the OTInstaller Registry for OSINT tools. Results list each tool's input and output types, whether it needs API keys, its ethics flags and network access, and its trust status (signed, verified publisher, health).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | only this category, such as domain-dns or social-media |
| cursor | string | – | next_cursor from the previous page |
| input_type | string | – | only tools that take this input type (email, username, domain, ip, url, phone, ...); list_types lists them |
| limit | integer | – | results per page, 1 to 100 (default 20) |
| no_keys | boolean | – | only tools that need no API key |
| output_type | string | – | only tools that find this entity type |
| passive_only | boolean | – | only tools that run offline, touch no target and collect no personal data: the ones that run without asking |
| query | string | – | words to search for in names, summaries and tags |
| runtime | string | – | docker or pipx |
| Name | Type | Req | Description |
|---|---|---|---|
| next_cursor | string | – | – |
| results | null|array | yes | – |
| total | integer | – | – |
No examples provided.
suggest_pivots Suggest next runs ~129
Given a saved run (or entities), list what to look at next: each entity worth pivoting on, the input type it fits, and the installed tools (and optionally registry tools) that take it. Runs nothing.
| Name | Type | Req | Description |
|---|---|---|---|
| entities | null|array | – | or give entities directly, as {type, value, attrs} |
| limit | integer | – | at most this many pivots (default 25) |
| registry | boolean | – | also suggest tools that are not installed, from the registry (slower) |
| run_id | string | – | take the entities from this saved run |
| Name | Type | Req | Description |
|---|---|---|---|
| note | string | yes | – |
| pivots | null|array | yes | – |
No examples provided.
uninstall_tool Uninstall a tool ~57
Remove an installed tool. Always asks the person.
| Name | Type | Req | Description |
|---|---|---|---|
| consent_token | string | – | only after the person said yes to the summary of a consent_required error for this exact call |
| tool | string | yes | the installed package, namespace/name |
| Name | Type | Req | Description |
|---|---|---|---|
| already_finished | boolean | – | – |
| id | string | yes | – |
| status | string | yes | – |
No examples provided.
validate_manifest Validate a manifest ~67
Check an otinstaller.yaml as the registry will, with the same error codes. For publishers packaging a tool or guide. Give an absolute path: the server's folder is wherever the client started it.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | – | the otinstaller.yaml to check (default ./otinstaller.yaml) |
| Name | Type | Req | Description |
|---|---|---|---|
| problems | null|array | yes | – |
| valid | boolean | yes | – |
No examples provided.
How do I install the OTInstaller MCP server?
OTInstaller ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, a1780763ad49f65213b01f0fe0608cd4f7cddfda1360f504d416de31972e56f4; the commands to do that are on this page. If it does not match, do not open it.
mcpb · ot_0.16.1_linux_amd64.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
a1780763ad49f65213b01f0fe0608cd4f7cddfda1360f504d416de31972e56f4
macOS / Linux
echo "a1780763ad49f65213b01f0fe0608cd4f7cddfda1360f504d416de31972e56f4 ot_0.16.1_linux_amd64.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\ot_0.16.1_linux_amd64.mcpb).Hash -eq "a1780763ad49f65213b01f0fe0608cd4f7cddfda1360f504d416de31972e56f4"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the OTInstaller MCP server?
OTInstaller is an MCP server listed in the public MCP registry as com.otinstaller/ot. Install and run open-source OSINT tools in a local sandbox, asking before runs that touch a target. This page covers its MCPB bundle (https://github.com/OTInstaller/ot/releases/download/v0.16.1/ot_0.16.1_linux_amd64.mcpb).
Is the OTInstaller MCP server safe to use?
OTInstaller scores 48 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the OTInstaller MCP server expose?
OTInstaller exposes 25 tools: cancel_run, detect_type, diff_runs, doctor, extract_indicators, and 20 more. Their descriptions and schemas cost roughly 2,576 tokens of context every time the server is loaded.
What licence is the OTInstaller MCP server under?
OTInstaller declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.