{"id":32692598,"url":"https://github.com/scaile-it/g-mcp-tools-fast","last_synced_at":"2025-11-01T16:03:32.632Z","repository":{"id":320928953,"uuid":"1083782630","full_name":"SCAILE-it/g-mcp-tools-fast","owner":"SCAILE-it","description":"Production-ready data enrichment API with 9 AI-powered tools: web scraping, email intel, phone validation, company data, and more. SaaS-ready with OpenAPI docs.","archived":false,"fork":false,"pushed_at":"2025-10-26T18:52:06.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-26T20:41:49.006Z","etag":null,"topics":["api","data-intelligence","email-validation","enrichment","gemini","modal","openapi","phone-validation","saas","web-scraping"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SCAILE-it.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-26T17:51:45.000Z","updated_at":"2025-10-26T18:52:09.000Z","dependencies_parsed_at":"2025-10-26T20:41:52.144Z","dependency_job_id":null,"html_url":"https://github.com/SCAILE-it/g-mcp-tools-fast","commit_stats":null,"previous_names":["scaile-it/g-mcp-tools-fast"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/SCAILE-it/g-mcp-tools-fast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SCAILE-it%2Fg-mcp-tools-fast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SCAILE-it%2Fg-mcp-tools-fast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SCAILE-it%2Fg-mcp-tools-fast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SCAILE-it%2Fg-mcp-tools-fast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SCAILE-it","download_url":"https://codeload.github.com/SCAILE-it/g-mcp-tools-fast/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SCAILE-it%2Fg-mcp-tools-fast/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282166065,"owners_count":26625169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-01T02:00:06.759Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","data-intelligence","email-validation","enrichment","gemini","modal","openapi","phone-validation","saas","web-scraping"],"created_at":"2025-11-01T16:01:32.723Z","updated_at":"2025-11-01T16:03:32.617Z","avatar_url":"https://github.com/SCAILE-it.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# g-mcp-tools-fast - Production-Ready Enrichment API\n\n**Enterprise-grade data intelligence API with 9 enrichment tools + bulk processing**\n\n🚀 **Status:** Production-Ready | SaaS-Ready | Fully Deployed\n🔗 **Live Endpoint:** `https://scaile--g-mcp-tools-fast-api.modal.run`\n📚 **Interactive Docs:** [Swagger UI](https://scaile--g-mcp-tools-fast-api.modal.run/docs) | [ReDoc](https://scaile--g-mcp-tools-fast-api.modal.run/redoc)\n\n---\n\n## 🎯 Overview\n\nA complete data enrichment API built on Modal.com, combining AI-powered web scraping with 8 specialized intelligence tools. Perfect for sales intelligence, market research, lead enrichment, and data validation.\n\n### Key Features\n\n✅ **9 Enrichment Tools** - Web scraping, email intel, company data, phone validation, and more\n✅ **Bulk Processing** - Process 100s-1000s of records in parallel with auto-detection\n✅ **Smart Auto-Detection** - Automatically detect data types and apply appropriate tools\n✅ **Multi-Tool Enrichment** - Combine multiple tools on a single record\n✅ **AI-Powered Extraction** - Uses Gemini 2.5 Flash for intelligent data extraction\n✅ **Production-Ready** - Authentication, health checks, comprehensive error handling\n✅ **Auto-Scaling** - Serverless architecture handles traffic spikes automatically\n✅ **24-Hour Cache** - Reduces costs and improves response times\n✅ **OpenAPI Docs** - Swagger/ReDoc for easy integration\n✅ **Type-Safe** - Pydantic models for all inputs/outputs\n\n---\n\n## 🚀 Bulk Processing \u0026 Power Features\n\n**NEW:** Process multiple records in parallel with intelligent auto-detection!\n\n### Multi-Tool Enrichment (`/enrich`)\n\nEnrich a single record with multiple tools at once:\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/enrich \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"data\": {\n      \"phone\": \"+14155552671\",\n      \"email\": \"john@anthropic.com\"\n    },\n    \"tools\": [\"phone-validation\", \"email-intel\", \"email-pattern\"]\n  }'\n```\n\n### Auto-Detection (`/enrich/auto`)\n\nAutomatically detect data types and apply appropriate tools:\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/enrich/auto \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"data\": {\n      \"contact_phone\": \"+14155552671\",\n      \"work_email\": \"john@anthropic.com\",\n      \"company_domain\": \"anthropic.com\"\n    }\n  }'\n```\n\n**Response:** Automatically detected and enriched with 5 tools (phone validation, email intel, email pattern, WHOIS, tech stack)!\n\n### Bulk Processing (`/bulk`)\n\nProcess multiple records in parallel with explicit tools:\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/bulk \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"rows\": [\n      {\"name\": \"Alice Johnson\", \"email\": \"alice@example.com\"},\n      {\"name\": \"Bob Smith\", \"email\": \"bob@example.com\"}\n    ],\n    \"tools\": [\"email-intel\", \"email-pattern\"]\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"batch_id\": \"batch_1761503726531_7AzCBh1nHak\",\n  \"status\": \"completed\",\n  \"total_rows\": 2,\n  \"successful\": 2,\n  \"failed\": 0,\n  \"processing_time_seconds\": 1.24,\n  \"results\": [ /* enriched rows */ ]\n}\n```\n\n### Bulk Auto-Processing (`/bulk/auto`)\n\nProcess multiple records with automatic tool detection:\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/bulk/auto \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"rows\": [\n      {\"name\": \"Alice\", \"email\": \"alice@example.com\", \"website\": \"example.com\"},\n      {\"name\": \"Bob\", \"phone\": \"+14155551234\"}\n    ]\n  }'\n```\n\n**Smart Features:**\n- ✅ Automatically detects emails, phones, domains, companies, GitHub usernames\n- ✅ Applies appropriate tools (email-intel, email-pattern, whois, tech-stack, etc.)\n- ✅ Processes rows in parallel using asyncio\n- ✅ Handles up to 10,000 rows per batch\n- ✅ Returns detailed success/error stats\n\n---\n\n## 🛠️ Individual Enrichment Tools\n\n### 1. **Web Scraper** (`/scrape`)\nExtract structured data from any website using natural language prompts.\n\n**Capabilities:**\n- AI-powered extraction with Gemini 2.5 Flash\n- Multi-page scraping with auto-discovery\n- Custom JSON schema support\n- Link extraction\n- 24-hour intelligent caching\n\n**Example:**\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/scrape \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"url\": \"https://anthropic.com\",\n    \"prompt\": \"Extract the company mission and product names\",\n    \"max_pages\": 1\n  }'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"company_mission\": \"Build safe, beneficial AI...\",\n    \"product_names\": [\"Claude\", \"Claude Code\", \"Opus\", \"Sonnet\", \"Haiku\"]\n  },\n  \"metadata\": {\n    \"extraction_time\": 10.31,\n    \"pages_scraped\": 1,\n    \"model\": \"gemini-2.5-flash\"\n  }\n}\n```\n\n---\n\n### 2. **Email Intel** (`/email-intel`)\nCheck which platforms an email is registered on (holehe).\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/email-intel \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\": \"user@example.com\"}'\n```\n\n---\n\n### 3. **Email Finder** (`/email-finder`)\nFind email addresses associated with a domain (theHarvester).\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/email-finder \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"domain\": \"anthropic.com\", \"limit\": 10}'\n```\n\n---\n\n### 4. **Company Data** (`/company-data`)\nGet company registration and corporate information (OpenCorporates).\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/company-data \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"companyName\": \"Anthropic\", \"domain\": \"anthropic.com\"}'\n```\n\n---\n\n### 5. **Phone Validation** (`/phone-validation`)\nValidate phone numbers with carrier, location, and line type info.\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/phone-validation \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phoneNumber\": \"+14155552671\", \"defaultCountry\": \"US\"}'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"valid\": true,\n    \"formatted\": {\n      \"e164\": \"+14155552671\",\n      \"international\": \"+1 415-555-2671\",\n      \"national\": \"(415) 555-2671\"\n    },\n    \"country\": \"San Francisco, CA\",\n    \"carrier\": \"Unknown\",\n    \"lineType\": \"FIXED_LINE_OR_MOBILE\",\n    \"lineTypeCode\": 2\n  }\n}\n```\n\n---\n\n### 6. **Tech Stack** (`/tech-stack`)\nDetect technologies and frameworks used by a website.\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/tech-stack \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"domain\": \"anthropic.com\"}'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"domain\": \"anthropic.com\",\n    \"technologies\": [\n      {\"name\": \"Next.js\", \"category\": \"Framework\"},\n      {\"name\": \"cloudflare\", \"category\": \"Web Server\"}\n    ],\n    \"totalFound\": 2\n  }\n}\n```\n\n---\n\n### 7. **Email Pattern** (`/email-pattern`)\nGenerate common email patterns for a domain.\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/email-pattern \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"domain\": \"anthropic.com\", \"firstName\": \"John\", \"lastName\": \"Doe\"}'\n```\n\n---\n\n### 8. **WHOIS** (`/whois`)\nLook up domain registration information.\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/whois \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"domain\": \"anthropic.com\"}'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"domain\": \"anthropic.com\",\n    \"registrar\": \"MarkMonitor, Inc.\",\n    \"creationDate\": \"2001-10-02\",\n    \"expirationDate\": \"2033-10-02\",\n    \"nameServers\": [\"ISLA.NS.CLOUDFLARE.COM\", \"RANDY.NS.CLOUDFLARE.COM\"]\n  }\n}\n```\n\n---\n\n### 9. **GitHub Intel** (`/github-intel`)\nAnalyze GitHub user profiles and repositories.\n\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/github-intel \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"username\": \"anthropics\"}'\n```\n\n**Response:**\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"username\": \"anthropics\",\n    \"name\": \"Anthropic\",\n    \"location\": \"United States of America\",\n    \"publicRepos\": 54,\n    \"followers\": 14565,\n    \"languages\": {\n      \"Python\": 6,\n      \"TypeScript\": 3,\n      \"JavaScript\": 1\n    }\n  }\n}\n```\n\n---\n\n## 🔐 Authentication\n\nThe API supports optional API key authentication via the `x-api-key` header.\n\n### Enable Authentication\n\n1. **Create Modal secret:**\n```bash\nmodal secret create modal-api-key MODAL_API_KEY=your-secret-key-here\n```\n\n2. **Redeploy the API:**\n```bash\n./DEPLOY_G_MCP_TOOLS.sh\n```\n\n3. **Include API key in requests:**\n```bash\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/scrape \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-api-key: your-secret-key-here' \\\n  -d '{\"url\": \"https://example.com\", \"prompt\": \"Extract data\"}'\n```\n\n**Note:** If `MODAL_API_KEY` is not set, the API is publicly accessible (useful for development).\n\n---\n\n## 🚀 Deployment\n\n### Prerequisites\n\n1. **Install Modal CLI:**\n```bash\npip install modal\n```\n\n2. **Authenticate:**\n```bash\nmodal setup\n```\n\n3. **Create Gemini API secret:**\n```bash\nmodal secret create gemini-secret GOOGLE_GENERATIVE_AI_API_KEY=your-gemini-key\n```\n\n### Deploy\n\n```bash\nchmod +x DEPLOY_G_MCP_TOOLS.sh\n./DEPLOY_G_MCP_TOOLS.sh\n```\n\nOr manually:\n```bash\nmodal deploy g-mcp-tools-complete.py\n```\n\n---\n\n## 🏥 Health Check\n\nMonitor API status:\n\n```bash\ncurl https://scaile--g-mcp-tools-fast-api.modal.run/health\n```\n\n**Response:**\n```json\n{\n  \"status\": \"healthy\",\n  \"service\": \"g-mcp-tools-fast\",\n  \"version\": \"1.0.0\",\n  \"tools\": 9,\n  \"timestamp\": \"2025-10-26T17:30:00.000000Z\"\n}\n```\n\n---\n\n## 📊 Response Format\n\nAll endpoints follow a consistent response format:\n\n### Success Response\n```json\n{\n  \"success\": true,\n  \"data\": { ... },\n  \"metadata\": {\n    \"source\": \"tool-name\",\n    \"timestamp\": \"2025-10-26T17:30:00.000000Z\"\n  }\n}\n```\n\n### Error Response\n```json\n{\n  \"success\": false,\n  \"error\": \"Error message\",\n  \"metadata\": {\n    \"source\": \"tool-name\",\n    \"timestamp\": \"2025-10-26T17:30:00.000000Z\"\n  }\n}\n```\n\n---\n\n## 💰 Cost Optimization\n\nThe API includes several cost-saving features:\n\n1. **24-Hour Cache** - Repeated requests return cached results\n2. **Timeouts** - Prevents runaway processes (30s default, 120s max)\n3. **Container Idle Timeout** - Containers shut down after 120s of inactivity\n4. **Efficient Resource Usage** - Only runs when needed\n\n**Estimated costs (Modal pricing):**\n- Web scraping: ~$0.001 per request\n- Other tools: ~$0.0001 per request\n- Cache hits: $0 (served from memory)\n\n---\n\n## 🧪 Testing\n\n### Run All Tests\n```bash\n# Test all 9 endpoints\n./test-all-endpoints.sh\n```\n\n### Individual Endpoint Tests\n```bash\n# Email pattern\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/email-pattern \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"domain\": \"anthropic.com\"}'\n\n# Phone validation\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/phone-validation \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"phoneNumber\": \"+14155552671\"}'\n\n# GitHub intel\ncurl -X POST https://scaile--g-mcp-tools-fast-api.modal.run/github-intel \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"username\": \"anthropics\"}'\n```\n\n---\n\n## 📈 SaaS Readiness Checklist\n\n- [x] **Health Check Endpoint** - `/health` for monitoring\n- [x] **API Authentication** - Optional `x-api-key` header\n- [x] **OpenAPI Documentation** - Swagger UI + ReDoc\n- [x] **Error Handling** - Comprehensive error responses\n- [x] **Input Validation** - Pydantic models\n- [x] **Rate Limiting** - Handled by Modal platform\n- [x] **Monitoring** - Modal dashboard + logs\n- [x] **Auto-Scaling** - Serverless architecture\n- [x] **Cost Optimization** - Caching + timeouts\n- [x] **Type Safety** - TypeScript-style typing\n\n### Ready to Sell As:\n✅ B2B SaaS API\n✅ Data Enrichment Service\n✅ Lead Intelligence Platform\n✅ Market Research Tool\n\n---\n\n## 🔧 Monitoring \u0026 Logs\n\n### View Logs\n```bash\nmodal app logs g-mcp-tools-fast --follow\n```\n\n### Check App Status\n```bash\nmodal app list | grep g-mcp-tools\n```\n\n### View Secrets\n```bash\nmodal secret list\n```\n\n---\n\n## 🏗️ Architecture\n\n```\nClient Request\n    ↓\nFastAPI (Modal ASGI)\n    ↓\nAuthentication Check (optional)\n    ↓\nInput Validation (Pydantic)\n    ↓\nCache Check (24h TTL)\n    ↓ (cache miss)\nTool Execution\n    ├→ Web Scraper (crawl4ai + Gemini)\n    ├→ Email Intel (holehe)\n    ├→ Email Finder (theHarvester)\n    ├→ Company Data (OpenCorporates API)\n    ├→ Phone Validation (libphonenumber)\n    ├→ Tech Stack (custom detection)\n    ├→ Email Pattern (pattern generation)\n    ├→ WHOIS (python-whois)\n    └→ GitHub Intel (GitHub API)\n    ↓\nCache Result\n    ↓\nJSON Response\n```\n\n---\n\n## 📝 License\n\nSee parent repository for license information.\n\n---\n\n## 🤝 Support\n\n- **Documentation:** [Swagger UI](https://scaile--g-mcp-tools-fast-api.modal.run/docs)\n- **Issues:** Report via GitHub Issues\n- **Modal Support:** [modal.com/docs](https://modal.com/docs)\n\n---\n\n## 🎯 Use Cases\n\n### Sales Intelligence\n- Enrich lead data with company info\n- Find contact emails and phone numbers\n- Validate contact information\n\n### Market Research\n- Scrape competitor websites\n- Analyze tech stacks\n- Track company changes via WHOIS\n\n### Developer Intelligence\n- Analyze GitHub profiles\n- Detect technologies used\n- Research developer ecosystems\n\n### Data Validation\n- Validate phone numbers\n- Verify email patterns\n- Check domain registrations\n\n---\n\n**Built with:** Modal.com | FastAPI | Gemini 2.5 Flash | crawl4ai\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscaile-it%2Fg-mcp-tools-fast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscaile-it%2Fg-mcp-tools-fast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscaile-it%2Fg-mcp-tools-fast/lists"}