mcp-server-subito-scraper
# Oli II Hands Searcher MCP Server
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
Monorepo TypeScript basato su **NPM Workspaces** per lo sviluppo, test e deployment di molteplici server **MCP (Model Context Protocol)**.
---
## ๐ Struttura del Repository
```
oli-II-Hands-searcher-mcp-server/
โโโ package.json # Configurazione root e script globali (NPM Workspaces)
โโโ tsconfig.base.json # Configurazione TypeScript condivisa
โโโ mcp_config.json # Configurazione client MCP con tutti i server registrati
โโโ hardware_rules.json # Database centrale di regole hardware sincrone
โโโ wiki/ # ๐ Documentazione & Wiki ufficiale del progetto
โ โโโ Home.md # Portale principale del Wiki
โ โโโ architettura-monorepo.md # Architettura NPM Workspaces e flusso MCP
โ โโโ regole-hardware.md # Matrice ortogonale e regole Zero Assunzioni
โ โโโ semantic-routing-e-prompting.md # Routing automatico e prompt
โ โโโ server-scraper.md # Scraper Vinted, Subito.it, Wallapop
โ โโโ ai-vision-inspector.md # Pipeline a 3 fasi e ispezione multimodale
โ โโโ guida-sviluppo-e-testing.md # Build, testing ed estensione
โโโ .gitignore
โโโ README.md # Questo file
โ
โโโ packages/ # Directory contenente i singoli server MCP
โโโ shared-mcp-utils/ # Utility condivise, prompt e regole hardware
โโโ subito-scraper/ # Server MCP per scraping Subito.it (via Apify)
โโโ vinted-scraper/ # Server MCP per scraping Vinted (via Apify)
โโโ wallapop-scraper/ # Server MCP per scraping Wallapop (via Apify)
```
---
## ๐ Documentazione & Wiki Ufficiale
Per la documentazione completa e approfondita, consulta il [**Wiki del Progetto**](./wiki/Home.md).
---
## ๐ฆ Server MCP Disponibili
| Server | Directory | Descrizione |
| :--- | :--- | :--- |
| **`mcp-server-subito-scraper`** | [`packages/subito-scraper`](./packages/subito-scraper) | Ricerca e scraping di annunci su Subito.it tramite Apify Actor. |
| **`mcp-server-vinted-scraper`** | [`packages/vinted-scraper`](./packages/vinted-scraper) | Ricerca e scraping di annunci su Vinted (Italia ed Europa) tramite Apify Actor. |
| **`mcp-server-wallapop-scraper`** | [`packages/wallapop-scraper`](./packages/wallapop-scraper) | Ricerca e scraping di annunci su Wallapop (Italia e Spagna) tramite Apify Actor. |
| **`shared-mcp-utils`** | [`packages/shared-mcp-utils`](./packages/shared-mcp-utils) | Prompting specializzato, AI Inspector e moduli di regole per la validazione hardware. |
---
## ๐ Guida Rapida
### 1. Installazione Dipendenze
Installa le dipendenze per tutti i workspace con un unico comando:
```bash
npm install
```
### 2. Compilazione
Compila tutti i server MCP nel monorepo:
```bash
npm run build
```
Per compilare solo un server specifico:
```bash
npm run build:subito
# oppure:
npm run build -w mcp-server-subito-scraper
```
### 3. Test
Esegui i test su tutti i server:
```bash
npm test
```
Esegui i test per un server specifico:
```bash
npm run test:subito
# Test di integrazione MCP con connessione Stdio:
npm run test:mcp -w mcp-server-subito-scraper
```
---
## โ Come Aggiungere un Nuovo Server MCP
Aggiungere un nuovo server MCP al monorepo รจ semplicissimo:
1. **Crea la cartella del nuovo server**:
```bash
mkdir -p packages/mio-nuovo-server/src packages/mio-nuovo-server/test
```
2. **Crea il `package.json`** in `packages/mio-nuovo-server/package.json`:
```json
{
"name": "mcp-server-mio-nuovo-server",
"version": "1.0.0",
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"bin": {
"mcp-server-mio-nuovo-server": "./dist/index.js"
},
"scripts": {
"build": "tsc && chmod +x dist/index.js",
"watch": "tsc --watch",
"test": "tsx test/index.test.ts",
"dev": "tsx src/index.ts",
"start": "node dist/index.js"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.12.0",
"dotenv": "^16.4.7",
"zod": "^3.24.2"
}
}
```
3. **Crea il `tsconfig.json`** in `packages/mio-nuovo-server/tsconfig.json`:
```json
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
```
4. **Installa e Compila**:
```bash
npm install
npm run build
```
5. **Aggiungi la configurazione in `mcp_config.json`**.
---
## ๐ ๏ธ Configurazione Client MCP (Claude Desktop / Antigravity / Cursor)
Usa la configurazione aggregata `mcp_config.json` per registrare i server nei tuoi client:
```json
{
"mcpServers": {
"subito-scraper": {
"command": "node",
"args": [
"/Users/olindo/prj/oli-II-Hands-searcher-mcp-server/packages/subito-scraper/dist/index.js"
],
"env": {
"APIFY_TOKEN": "il_tuo_token_apify",
"HARDWARE_RULES_DIR": "/Users/olindo/prj/oli-II-Hands-searcher-mcp-server/packages/shared-mcp-utils/dist/rules"
}
},
"vinted-scraper": {
"command": "node",
"args": [
"/Users/olindo/prj/oli-II-Hands-searcher-mcp-server/packages/vinted-scraper/dist/index.js"
],
"env": {
"APIFY_TOKEN": "il_tuo_token_apify",
"HARDWARE_RULES_DIR": "/Users/olindo/prj/oli-II-Hands-searcher-mcp-server/packages/shared-mcp-utils/dist/rules"
}
}
}
}
```
---
## ๐ Licenza
MIT ยฉ Olindo
TDQS
Scored across 4 tools
Each tool targets a distinct aspect: scraping by URL vs. by search parameters, checking account status, and retrieving dataset items. There is slight potential confusion between subito_scrape_by_url and subito_search, but their descriptions clarify the difference (URL vs. keyword-based).
Tool names use a consistent verb_noun pattern with a domain prefix (subito_). Names are descriptive and follow a predictable structure, though subito_search could optionally be subito_search_by_keywords for perfect parallelism with subito_scrape_by_url.
Four tools are appropriate for a focused scraping server: two scraping methods, one status check, and one data retrieval tool. Each tool has a clear purpose and no unnecessary bloat.
The tool surface covers scraping, search, status checking, and data retrieval, but lacks ability to list or manage datasets (e.g., delete old datasets). An agent scraping multiple times may accumulate datasets without cleanup, which is a notable gap.