Skip to main content
Glama
abrahamhl
by abrahamhl
README.md
# MCP OSINT Server

This is a Model Context Protocol (MCP) server that exposes powerful Open Source Intelligence (OSINT) tools to AI agents.

## Why MCP?
The Model Context Protocol (MCP) allows AI agents like Claude and Gemini to access external tools in a standardized way. By exposing OSINT tools via MCP, AI agents can perform automated threat intelligence, vulnerability analysis, and digital forensics directly from their chat interfaces.

## Tools Exposed

| Tool | Description | Input | Output |
|------|-------------|-------|--------|
| `sanctions_screen` | Screen a name against EU sanctions lists | `{ name: string, birth_year?: number }` | `{ matches: Array<{listed_name, score, reasons[]}>, total_screened: number }` |
| `cve_brief` | Get prioritized vulnerability brief | `{ watchlist?: string[], max_items?: number, lang?: 'en'\|'nl'\|'es' }` | `{ priorities: {act_now: [], this_week: [], watch: []}, generated_at: string }` |
| `evidence_verify` | Verify evidence chain integrity | `{ case_id: string, evidence_dir: string }` | `{ verified: boolean, chain_length: number, broken_links: string[] }` |
| `chronolocate_sun` | Calculate sun position for verification | `{ lat: number, lon: number, time: string }` | `{ azimuth: number, elevation: number, shadow_bearing: number, shadow_ratio: number }` |
| `ioc_search` | Search indicators of compromise | `{ query: string, type?: 'ip'\|'domain'\|'hash'\|'url' }` | `{ results: Array<{value, type, source, first_seen, tags[]}> }` |

## Installation & Usage

1. Build the server:
   ```bash
   pnpm install
   pnpm build
   ```

2. Add to your AI Agent's configuration (e.g. `claude_desktop_config.json`):
   ```json
   {
     "mcpServers": {
       "osint": {
         "command": "node",
         "args": ["/path/to/mcp-osint-server/dist/index.js"]
       }
     }
   }
   ```

## Architecture

```mermaid
flowchart TD
    Agent[AI Agent\nClaude/Gemini] <-->|MCP Protocol| Server[MCP OSINT Server\nNode.js]
    Server --> |Spawn Subprocess| Sub1[sanctions.py]
    Server --> |Spawn Subprocess| Sub2[cve.py]
    Server --> |Spawn Subprocess| Sub3[evidence.py]
    Server --> |Spawn Subprocess| Sub4[chronolocate.py]
    Server --> |Spawn Subprocess| Sub5[ioc.py]
```

## Scope & Limitations
- These tools are thin wrappers around underlying Python tools. The Python tools must be installed and accessible in the environment.
- The server currently executes Python scripts as subprocesses without maintaining a long-lived Python environment.

TDQS

C2.7/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct OSINT capability (sanctions screening, vulnerability brief, evidence verification, sun position, IOC search), with minimal overlap. The only potential confusion is between evidence_verify and chronolocate_sun (both verification-related), but they operate at different levels of abstraction.

Naming Consistency3/5

All names use snake_case, but the word order varies: sanctions_screen (noun+verb), cve_brief (noun+noun), evidence_verify (noun+verb), chronolocate_sun (verb+noun), ioc_search (noun+verb). There is no consistent verb_noun pattern, making it mixed but still readable.

Tool Count5/5

Five tools is within the ideal 3–15 range. Each addresses a distinct need without redundancy, making the set well-scoped for a focused OSINT toolkit.

Completeness2/5

For an OSINT server, the surface lacks many standard capabilities such as DNS/WHOIS lookups, domain/IP enrichment, social media search, and reverse image search. While it covers sanctions, CVE, IOC, and verification, these gaps will likely cause agent failures on common OSINT tasks.

Maintenance

ActivityMaintained
ResponsivenessNo issues