Rene Fichtmueller 4b452ab49e feat(scrapers+mcp): ATGBICS + ProLabs scrapers, MCP HTTP/SSE server
Scrapers:
- atgbics.ts: PlaywrightCrawler for UK vendor ATGBICS (Shopify store),
  scrapes SFP/SFP+/SFP28/QSFP+/QSFP28/QSFP-DD in GBP, max 50 pages/run
- prolabs.ts: HttpCrawler for ProLabs (Legrand subsidiary), USD pricing,
  category-driven crawl with reach/fiber/speed detection
- Both registered in scheduler (every 8h, staggered) and index.ts CLI

MCP HTTP Server:
- packages/mcp-server/src/http-server.ts: Express + SSEServerTransport
- Exposes all 12 TIP tools via GET /sse + POST /message
- Bearer token auth (MCP_SECRET env), CORS-configurable
- GET /health → { status: "ok", tools: 12 }
- Port: MCP_HTTP_PORT (default 3201)

SQL + tools:
- sql/006-009: seed scripts for whitebox switches, vendors, assets
- switch-docs.ts: MCP tool for switch documentation queries
2026-03-29 02:26:45 +08:00

30 lines
688 B
JSON

{
"name": "@tip/mcp-server",
"version": "0.1.0",
"private": true,
"description": "TIP MCP Server — 12 tools for LLM access to transceiver intelligence",
"main": "dist/index.js",
"bin": {
"tip-mcp": "dist/index.js"
},
"scripts": {
"build": "tsc",
"dev": "tsx src/index.ts",
"start": "node dist/index.js",
"start:http": "tsx src/http-server.ts"
},
"dependencies": {
"@modelcontextprotocol/sdk": "^1.9.0",
"express": "^4.18.2",
"pg": "^8.13.1",
"dotenv": "^16.4.7",
"zod": "^3.24.0"
},
"devDependencies": {
"@types/express": "^4.17.21",
"@types/pg": "^8.11.11",
"typescript": "^5.9.3",
"tsx": "^4.19.0"
}
}