
Skill Seeker

Automatically convert documentation websites, GitHub repositories, and PDFs into Claude AI skills in minutes.
📋 View Development Roadmap & Tasks - 134 tasks across 10 categories, pick any to contribute!
What is Skill Seeker?
Skill Seeker is an automated tool that transforms documentation websites, GitHub repositories, and PDF files into production-ready Claude AI skills. Instead of manually reading and summarizing documentation, Skill Seeker:
- Scrapes multiple sources (docs, GitHub repos, PDFs) automatically
- Analyzes code repositories with deep AST parsing
- Detects conflicts between documentation and code implementation
- Organizes content into categorized reference files
- Enhances with AI to extract best examples and key concepts
- Packages everything into an uploadable
.zip
file for Claude
Result: Get comprehensive Claude skills for any framework, API, or tool in 20-40 minutes instead of hours of manual work.
Why Use This?
- 🎯 For Developers: Create skills from documentation + GitHub repos with conflict detection
- 🎮 For Game Devs: Generate skills for game engines (Godot docs + GitHub, Unity, etc.)
- 🔧 For Teams: Combine internal docs + code repositories into single source of truth
- 📚 For Learners: Build comprehensive skills from docs, code examples, and PDFs
- 🔍 For Open Source: Analyze repos to find documentation gaps and outdated examples
Key Features
🌐 Documentation Scraping
- ✅ llms.txt Support - Automatically detects and uses LLM-ready documentation files (10x faster)
- ✅ Universal Scraper - Works with ANY documentation website
- ✅ Smart Categorization - Automatically organizes content by topic
- ✅ Code Language Detection - Recognizes Python, JavaScript, C++, GDScript, etc.
- ✅ 8 Ready-to-Use Presets - Godot, React, Vue, Django, FastAPI, and more
📄 PDF Support (v1.2.0)
- ✅ Basic PDF Extraction - Extract text, code, and images from PDF files
- ✅ OCR for Scanned PDFs - Extract text from scanned documents
- ✅ Password-Protected PDFs - Handle encrypted PDFs
- ✅ Table Extraction - Extract complex tables from PDFs
- ✅ Parallel Processing - 3x faster for large PDFs
- ✅ Intelligent Caching - 50% faster on re-runs
🐙 GitHub Repository Scraping (v2.0.0)
- ✅ Deep Code Analysis - AST parsing for Python, JavaScript, TypeScript, Java, C++, Go
- ✅ API Extraction - Functions, classes, methods with parameters and types
- ✅ Repository Metadata - README, file tree, language breakdown, stars/forks
- ✅ GitHub Issues & PRs - Fetch open/closed issues with labels and milestones
- ✅ CHANGELOG & Releases - Automatically extract version history
- ✅ Conflict Detection - Compare documented APIs vs actual code implementation
- ✅ MCP Integration - Natural language: "Scrape GitHub repo facebook/react"
🔄 Unified Multi-Source Scraping (NEW - v2.0.0)
- ✅ Combine Multiple Sources - Mix documentation + GitHub + PDF in one skill
- ✅ Conflict Detection - Automatically finds discrepancies between docs and code
- ✅ Intelligent Merging - Rule-based or AI-powered conflict resolution
- ✅ Transparent Reporting - Side-by-side comparison with ⚠️ warnings
- ✅ Documentation Gap Analysis - Identifies outdated docs and undocumented features
- ✅ Single Source of Truth - One skill showing both intent (docs) and reality (code)
- ✅ Backward Compatible - Legacy single-source configs still work
🔐 Private Config Repositories (NEW - v2.2.0)
- ✅ Git-Based Config Sources - Fetch configs from private/team git repositories
- ✅ Multi-Source Management - Register unlimi
Features
🌐 Documentation Scraping
- ✅ llms.txt Support - Automatically detects and uses LLM-ready documentation files (10x faster)
- ✅ Universal Scraper - Works with ANY documentation website
- ✅ Smart Categorization - Automatically organizes content by topic
- ✅ Code Language Detection - Recognizes Python, JavaScript, C++, GDScript, etc.
- ✅ 8 Ready-to-Use Presets - Godot, React, Vue, Django, FastAPI, and more
Usage
- BULLETPROOF_QUICKSTART.md - 🎯 START HERE if you're new!
- QUICKSTART.md - Quick start for experienced users
- TROUBLESHOOTING.md - Common issues and solutions
Examples
Documentation Scraping
# Scrape documentation website
skill-seekers scrape --config configs/react.json
# Quick scrape without config
skill-seekers scrape --url https://react.dev --name react
# With async mode (3x faster)
skill-seekers scrape --config configs/godot.json --async --workers 8
Code Examples
http_transport_examples.sh
#!/bin/bash
# HTTP Transport Examples for Skill Seeker MCP Server
#
# This script shows various ways to start the server with HTTP transport.
# DO NOT run this script directly - copy the commands you need.
# =============================================================================
# BASIC USAGE
# =============================================================================
# Default stdio transport (backward compatible)
python -m skill_seekers.mcp.server_fastmcp
# HTTP transport on default port 8000
python -m skill_seekers.mcp.server_fastmcp --http
# =============================================================================
# CUSTOM PORT
# =============================================================================
# HTTP transport on port 3000
python -m skill_seekers.mcp.server_fastmcp --http --port 3000
# HTTP transport on port 8080
python -m skill_seekers.mcp.server_fastmcp --http --port 8080
# ==========================================================================
test_http_server.py
#!/usr/bin/env python3
"""
Manual test script for HTTP transport.
This script starts the MCP server in HTTP mode and tests the endpoints.
Usage:
python examples/test_http_server.py
"""
import asyncio
import subprocess
import time
import sys
import requests
async def test_http_server():
"""Test the HTTP server."""
print("=" * 60)
print("Testing Skill Seeker MCP Server - HTTP Transport")
print("=" * 60)
print()
# Start the server in the background
print("1. Starting HTTP server on port 8765...")
server_process = subprocess.Popen(
[
sys.executable,
"-m",
"skill_seekers.mcp.server_fastmcp",
"--http",
"--port",
"8765",
],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
)
# Wait for server to start
print("2. Waiting for server to start...")
time.sleep(3)
try:
# Test health endpoint
print("3.