ig-extract-mcp
# ig-extract-mcp
MCP server — extract konten Instagram **apapun** (post / reel / carousel banyak slide) jadi filter screener terstruktur.
Handle caption, OCR per slide, dan parsing pola umum `PER/PBV/ROE/DER/volume/RSI/foreign/ARA/sektor/harga` — reusable buat workflow IG-to-screener apapun, bukan cuma 1 post.
## Tools (4)
| Tool | Deskripsi |
|------|-----------|
| `ig_extract` | Extract IG post/reel/carousel → caption + media URLs per slide + metadata. Support `/p/` & `/reel/`. Via `instaloader` → `gallery-dl` fallback. |
| `screener_parse` | Parse teks bebas (caption/OCR) → filter JSON `[{field, op, value}]`. Handle `PER<15`, `PBV<1`, `ROE>15%`, `volume 2x`, `RSI<30`, `asing net buy`, `ARA`, dll. |
| `screener_from_image` | OCR gambar screener (screenshot carousel banyak slide, tabel, cover reel) → filter JSON gabungan. |
| `ig_to_screener` | One-shot: URL IG apapun → auto extract + parse → filter siap pakai. Paling gampang. |
## Carousel Banyak Slide
Carousel di-handle penuh:
- `ig_extract` return `carousel: [{url, is_video, typename}]` + `slide_count` per slide
- `screener_from_image` bisa dipanggil per slide, lalu `screener_parse` gabungkan semua teks
- `ig_to_screener` otomatis gabungkan caption + hint preset
## Install
```bash
npm install
npm run build
```
## Pakai di Claude / Hermes
```json
{
"mcpServers": {
"ig-extract": {
"command": "node",
"args": ["/path/to/ig-extract-mcp/dist/index.js"]
}
}
}
```
Atau via Hermes:
```bash
hermes mcp add ig-extract -- node /path/to/ig-extract-mcp/dist/index.js
```
## Contoh
```
User: "extract https://www.instagram.com/p/Db_A9NQn3R2/ jadi filter"
→ ig_to_screener(url="https://www.instagram.com/p/Db_A9NQn3R2/")
→ {caption: "PER<15 PBV<1 ROE>15% ...", filters: [{field:"per",op:"<",value:15}, ...]}
User: [kirim screenshot carousel 5 slide]
→ screener_from_image per slide → screener_parse gabungan → filter JSON
```
## Skill Dotagents
Juga tersedia sebagai skill `ig-extract` di `~/dotagents/skills/ig-extract/` — auto ke-load di Hermes/Opencode tanpa setup MCP.
## License
MIT
TDQS
Scored across 4 tools
ig_extract and ig_to_screener are fairly distinct, but screener_parse and screener_from_image overlap because both appear to handle image/carousel OCR input. Descriptions help clarify the intended input type, but an agent could still hesitate when given an image.
All names are lowercase snake_case, which is readable, but the naming patterns are mixed: noun_verb (ig_extract, screener_parse) vs. prepositional phrases (screener_from_image, ig_to_screener). There is no consistent verb-first or verb_noun convention across the set.
Four tools is well-scoped for a focused pipeline: raw IG extraction, text parsing, OCR parsing, and a combined one-shot workflow. Each tool earns its place without bloat or an overly thin surface.
The set covers the full intended workflow from an Instagram URL or raw text/image input to structured screener filters. Post, reel, carousel, OCR, and manual text paths are all addressed, with ig_to_screener covering the end-to-end case.