Add comprehensive MCP setup guide and integration test template
**Documentation Added:** - docs/MCP_SETUP.md: Complete 400+ line setup guide - Prerequisites and installation steps - Configuration examples for Claude Code - Verification and troubleshooting - 3 usage examples and advanced configuration - End-to-end workflow and quick reference - tests/mcp_integration_test.md: Comprehensive test template - 10 test cases covering all MCP tools - Performance metrics table - Issue tracking and environment setup - Setup and cleanup scripts - .claude/mcp_config.example.json: Example MCP configuration **Documentation Updated:** - STRUCTURE.md: Complete monorepo structure documentation - CLAUDE.md: All Python script paths updated to cli/ prefix - docs/USAGE.md: All command examples updated for monorepo - TODO.md: Current sprint status and completed tasks **Summary:** - Issues #2 and #3 handled (MCP setup guide + integration tests) - All documentation now reflects monorepo structure (cli/ + mcp/) - Tests: 71/71 passing (100%) - Ready for MCP server testing with Claude Code 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
12
.claude/mcp_config.example.json
Normal file
12
.claude/mcp_config.example.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/REPLACE/WITH/YOUR/PATH/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/REPLACE/WITH/YOUR/PATH/Skill_Seekers",
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
82
CLAUDE.md
82
CLAUDE.md
@@ -27,11 +27,11 @@ export ANTHROPIC_API_KEY=sk-ant-...
|
||||
|
||||
```bash
|
||||
# Scrape and build with a preset configuration
|
||||
python3 doc_scraper.py --config configs/godot.json
|
||||
python3 doc_scraper.py --config configs/react.json
|
||||
python3 doc_scraper.py --config configs/vue.json
|
||||
python3 doc_scraper.py --config configs/django.json
|
||||
python3 doc_scraper.py --config configs/fastapi.json
|
||||
python3 cli/doc_scraper.py --config configs/godot.json
|
||||
python3 cli/doc_scraper.py --config configs/react.json
|
||||
python3 cli/doc_scraper.py --config configs/vue.json
|
||||
python3 cli/doc_scraper.py --config configs/django.json
|
||||
python3 cli/doc_scraper.py --config configs/fastapi.json
|
||||
```
|
||||
|
||||
### First-Time User Workflow (Recommended)
|
||||
@@ -41,15 +41,15 @@ python3 doc_scraper.py --config configs/fastapi.json
|
||||
pip3 install requests beautifulsoup4
|
||||
|
||||
# 2. Estimate page count BEFORE scraping (fast, no data download)
|
||||
python3 estimate_pages.py configs/godot.json
|
||||
python3 cli/estimate_pages.py configs/godot.json
|
||||
# Time: ~1-2 minutes, shows estimated total pages and recommended max_pages
|
||||
|
||||
# 3. Scrape with local enhancement (uses Claude Code Max, no API key)
|
||||
python3 doc_scraper.py --config configs/godot.json --enhance-local
|
||||
python3 cli/doc_scraper.py --config configs/godot.json --enhance-local
|
||||
# Time: 20-40 minutes scraping + 60 seconds enhancement
|
||||
|
||||
# 4. Package the skill
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
|
||||
# Result: godot.zip ready to upload to Claude
|
||||
```
|
||||
@@ -58,21 +58,21 @@ python3 package_skill.py output/godot/
|
||||
|
||||
```bash
|
||||
# Step-by-step configuration wizard
|
||||
python3 doc_scraper.py --interactive
|
||||
python3 cli/doc_scraper.py --interactive
|
||||
```
|
||||
|
||||
### Quick Mode (Minimal Config)
|
||||
|
||||
```bash
|
||||
# Create skill from any documentation URL
|
||||
python3 doc_scraper.py --name react --url https://react.dev/ --description "React framework for UIs"
|
||||
python3 cli/doc_scraper.py --name react --url https://react.dev/ --description "React framework for UIs"
|
||||
```
|
||||
|
||||
### Skip Scraping (Use Cached Data)
|
||||
|
||||
```bash
|
||||
# Fast rebuild using previously scraped data
|
||||
python3 doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
python3 cli/doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
# Time: 1-3 minutes (instant rebuild)
|
||||
```
|
||||
|
||||
@@ -81,27 +81,27 @@ python3 doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
**LOCAL Enhancement (Recommended - No API Key Required):**
|
||||
```bash
|
||||
# During scraping
|
||||
python3 doc_scraper.py --config configs/react.json --enhance-local
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance-local
|
||||
|
||||
# Standalone after scraping
|
||||
python3 enhance_skill_local.py output/react/
|
||||
python3 cli/enhance_skill_local.py output/react/
|
||||
```
|
||||
|
||||
**API Enhancement (Alternative - Requires API Key):**
|
||||
```bash
|
||||
# During scraping
|
||||
python3 doc_scraper.py --config configs/react.json --enhance
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance
|
||||
|
||||
# Standalone after scraping
|
||||
python3 enhance_skill.py output/react/
|
||||
python3 enhance_skill.py output/react/ --api-key sk-ant-...
|
||||
python3 cli/enhance_skill.py output/react/
|
||||
python3 cli/enhance_skill.py output/react/ --api-key sk-ant-...
|
||||
```
|
||||
|
||||
### Package the Skill
|
||||
|
||||
```bash
|
||||
# Package skill directory into .zip file
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
# Result: output/godot.zip
|
||||
```
|
||||
|
||||
@@ -110,22 +110,22 @@ python3 package_skill.py output/godot/
|
||||
```bash
|
||||
# Delete cached data and re-scrape from scratch
|
||||
rm -rf output/godot_data/
|
||||
python3 doc_scraper.py --config configs/godot.json
|
||||
python3 cli/doc_scraper.py --config configs/godot.json
|
||||
```
|
||||
|
||||
### Estimate Page Count (Before Scraping)
|
||||
|
||||
```bash
|
||||
# Quick estimation - discover up to 100 pages
|
||||
python3 estimate_pages.py configs/react.json --max-discovery 100
|
||||
python3 cli/estimate_pages.py configs/react.json --max-discovery 100
|
||||
# Time: ~30-60 seconds
|
||||
|
||||
# Full estimation - discover up to 1000 pages (default)
|
||||
python3 estimate_pages.py configs/godot.json
|
||||
python3 cli/estimate_pages.py configs/godot.json
|
||||
# Time: ~1-2 minutes
|
||||
|
||||
# Deep estimation - discover up to 2000 pages
|
||||
python3 estimate_pages.py configs/vue.json --max-discovery 2000
|
||||
python3 cli/estimate_pages.py configs/vue.json --max-discovery 2000
|
||||
# Time: ~3-5 minutes
|
||||
|
||||
# What it shows:
|
||||
@@ -148,12 +148,12 @@ python3 estimate_pages.py configs/vue.json --max-discovery 2000
|
||||
|
||||
```
|
||||
Skill_Seekers/
|
||||
├── doc_scraper.py # Main tool (single-file, ~790 lines)
|
||||
├── estimate_pages.py # Page count estimator (fast, no data)
|
||||
├── enhance_skill.py # AI enhancement (API-based)
|
||||
├── enhance_skill_local.py # AI enhancement (LOCAL, no API)
|
||||
├── package_skill.py # Skill packager
|
||||
├── run_tests.py # Test runner (71 tests)
|
||||
├── cli/doc_scraper.py # Main tool (single-file, ~790 lines)
|
||||
├── cli/estimate_pages.py # Page count estimator (fast, no data)
|
||||
├── cli/enhance_skill.py # AI enhancement (API-based)
|
||||
├── cli/enhance_skill_local.py # AI enhancement (LOCAL, no API)
|
||||
├── cli/package_skill.py # Skill packager
|
||||
├── cli/run_tests.py # Test runner (71 tests)
|
||||
├── configs/ # Preset configurations
|
||||
│ ├── godot.json
|
||||
│ ├── react.json
|
||||
@@ -284,7 +284,7 @@ See: `create_enhanced_skill_md()` in doc_scraper.py:426-542
|
||||
|
||||
```bash
|
||||
# 1. Scrape + Build + AI Enhancement (LOCAL, no API key)
|
||||
python3 doc_scraper.py --config configs/godot.json --enhance-local
|
||||
python3 cli/doc_scraper.py --config configs/godot.json --enhance-local
|
||||
|
||||
# 2. Wait for enhancement terminal to close (~60 seconds)
|
||||
|
||||
@@ -292,7 +292,7 @@ python3 doc_scraper.py --config configs/godot.json --enhance-local
|
||||
cat output/godot/SKILL.md
|
||||
|
||||
# 4. Package
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
|
||||
# Result: godot.zip ready for Claude
|
||||
# Time: 20-40 minutes (scraping) + 60 seconds (enhancement)
|
||||
@@ -302,11 +302,11 @@ python3 package_skill.py output/godot/
|
||||
|
||||
```bash
|
||||
# 1. Use existing data + Local Enhancement
|
||||
python3 doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
python3 enhance_skill_local.py output/godot/
|
||||
python3 cli/doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
python3 cli/enhance_skill_local.py output/godot/
|
||||
|
||||
# 2. Package
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
|
||||
# Time: 1-3 minutes (build) + 60 seconds (enhancement)
|
||||
```
|
||||
@@ -315,10 +315,10 @@ python3 package_skill.py output/godot/
|
||||
|
||||
```bash
|
||||
# 1. Scrape + Build (no enhancement)
|
||||
python3 doc_scraper.py --config configs/godot.json
|
||||
python3 cli/doc_scraper.py --config configs/godot.json
|
||||
|
||||
# 2. Package
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
|
||||
# Note: SKILL.md will be basic template - enhancement recommended
|
||||
# Time: 20-40 minutes
|
||||
@@ -328,7 +328,7 @@ python3 package_skill.py output/godot/
|
||||
|
||||
**Option 1: Interactive**
|
||||
```bash
|
||||
python3 doc_scraper.py --interactive
|
||||
python3 cli/doc_scraper.py --interactive
|
||||
# Follow prompts, it creates the config for you
|
||||
```
|
||||
|
||||
@@ -344,7 +344,7 @@ nano configs/myframework.json
|
||||
# Set "max_pages": 20 in config
|
||||
|
||||
# Use it
|
||||
python3 doc_scraper.py --config configs/myframework.json
|
||||
python3 cli/doc_scraper.py --config configs/myframework.json
|
||||
```
|
||||
|
||||
## Testing & Verification
|
||||
@@ -431,7 +431,7 @@ cat output/godot_data/summary.json | grep url | head -20
|
||||
**Solution:** Force re-scrape:
|
||||
```bash
|
||||
rm -rf output/myframework_data/
|
||||
python3 doc_scraper.py --config configs/myframework.json
|
||||
python3 cli/doc_scraper.py --config configs/myframework.json
|
||||
```
|
||||
|
||||
### Rate Limiting Issues
|
||||
@@ -445,19 +445,19 @@ python3 doc_scraper.py --config configs/myframework.json
|
||||
```
|
||||
|
||||
### Package Path Error
|
||||
**Problem:** doc_scraper.py shows wrong package_skill.py path
|
||||
**Problem:** doc_scraper.py shows wrong cli/package_skill.py path
|
||||
|
||||
**Expected output:**
|
||||
```bash
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
```
|
||||
|
||||
**Not:**
|
||||
```bash
|
||||
python3 /mnt/skills/examples/skill-creator/scripts/package_skill.py output/godot/
|
||||
python3 /mnt/skills/examples/skill-creator/scripts/cli/package_skill.py output/godot/
|
||||
```
|
||||
|
||||
The correct command uses the local `package_skill.py` in the repository root.
|
||||
The correct command uses the local `cli/package_skill.py` in the repository root.
|
||||
|
||||
## Key Code Locations
|
||||
|
||||
|
||||
101
STRUCTURE.md
101
STRUCTURE.md
@@ -1,18 +1,30 @@
|
||||
# Repository Structure
|
||||
|
||||
```
|
||||
doc-to-skill/
|
||||
Skill_Seekers/
|
||||
│
|
||||
├── README.md # Main documentation (start here!)
|
||||
├── QUICKSTART.md # 3-step quick start guide
|
||||
├── LICENSE # MIT License
|
||||
├── .gitignore # Git ignore rules
|
||||
├── 📄 Root Documentation
|
||||
│ ├── README.md # Main documentation (start here!)
|
||||
│ ├── CLAUDE.md # Quick reference for Claude Code
|
||||
│ ├── QUICKSTART.md # 3-step quick start guide
|
||||
│ ├── ROADMAP.md # Development roadmap
|
||||
│ ├── TODO.md # Current sprint tasks
|
||||
│ ├── STRUCTURE.md # This file
|
||||
│ ├── LICENSE # MIT License
|
||||
│ └── .gitignore # Git ignore rules
|
||||
│
|
||||
├── 🐍 Core Scripts
|
||||
├── 🔧 CLI Tools (cli/)
|
||||
│ ├── doc_scraper.py # Main scraping tool
|
||||
│ ├── estimate_pages.py # Page count estimator
|
||||
│ ├── enhance_skill.py # AI enhancement (API-based)
|
||||
│ ├── enhance_skill_local.py # AI enhancement (LOCAL, no API)
|
||||
│ └── package_skill.py # Skill packaging tool
|
||||
│ ├── package_skill.py # Skill packaging tool
|
||||
│ └── run_tests.py # Test runner
|
||||
│
|
||||
├── 🌐 MCP Server (mcp/)
|
||||
│ ├── server.py # Main MCP server
|
||||
│ ├── requirements.txt # MCP dependencies
|
||||
│ └── README.md # MCP setup guide
|
||||
│
|
||||
├── 📁 configs/ # Preset configurations
|
||||
│ ├── godot.json
|
||||
@@ -20,15 +32,25 @@ doc-to-skill/
|
||||
│ ├── vue.json
|
||||
│ ├── django.json
|
||||
│ ├── fastapi.json
|
||||
│ ├── steam-inventory.json
|
||||
│ ├── steam-economy.json
|
||||
│ ├── kubernetes.json
|
||||
│ └── steam-economy-complete.json
|
||||
│
|
||||
├── 🧪 tests/ # Test suite (71 tests, 100% pass rate)
|
||||
│ ├── test_config_validation.py
|
||||
│ ├── test_integration.py
|
||||
│ └── test_scraper_features.py
|
||||
│
|
||||
├── 📚 docs/ # Detailed documentation
|
||||
│ ├── CLAUDE.md # Technical architecture
|
||||
│ ├── ENHANCEMENT.md # AI enhancement guide
|
||||
│ ├── UPLOAD_GUIDE.md # How to upload skills
|
||||
│ └── READY_TO_SHARE.md # Sharing checklist
|
||||
│ ├── USAGE.md # Complete usage guide
|
||||
│ ├── TESTING.md # Testing guide
|
||||
│ └── UPLOAD_GUIDE.md # How to upload skills
|
||||
│
|
||||
├── 🔀 .github/ # GitHub configuration
|
||||
│ ├── SETUP_GUIDE.md # GitHub project setup
|
||||
│ ├── ISSUES_TO_CREATE.md # Issue templates
|
||||
│ └── ISSUE_TEMPLATE/ # Issue templates
|
||||
│
|
||||
└── 📦 output/ # Generated skills (git-ignored)
|
||||
├── {name}_data/ # Scraped raw data (cached)
|
||||
@@ -42,14 +64,61 @@ doc-to-skill/
|
||||
### For Users:
|
||||
- **README.md** - Start here for overview and installation
|
||||
- **QUICKSTART.md** - Get started in 3 steps
|
||||
- **configs/** - 8 ready-to-use presets
|
||||
- **configs/** - 7 ready-to-use presets
|
||||
- **mcp/README.md** - MCP server setup for Claude Code
|
||||
|
||||
### For CLI Usage:
|
||||
- **cli/doc_scraper.py** - Main scraping tool
|
||||
- **cli/estimate_pages.py** - Page count estimator
|
||||
- **cli/enhance_skill_local.py** - Local enhancement (no API key)
|
||||
- **cli/package_skill.py** - Package skills to .zip
|
||||
|
||||
### For MCP Usage (Claude Code):
|
||||
- **mcp/server.py** - MCP server (6 tools)
|
||||
- **mcp/README.md** - Setup instructions
|
||||
- **configs/** - Shared configurations
|
||||
|
||||
### For Developers:
|
||||
- **doc_scraper.py** - Main tool (787 lines)
|
||||
- **docs/CLAUDE.md** - Architecture and internals
|
||||
- **docs/ENHANCEMENT.md** - How enhancement works
|
||||
- **docs/USAGE.md** - Complete usage guide
|
||||
- **docs/TESTING.md** - Testing guide
|
||||
- **tests/** - 71 tests (100% pass rate)
|
||||
|
||||
### For Contributors:
|
||||
- **ROADMAP.md** - Development roadmap
|
||||
- **TODO.md** - Current sprint tasks
|
||||
- **.github/SETUP_GUIDE.md** - GitHub setup
|
||||
- **LICENSE** - MIT License
|
||||
- **.gitignore** - What Git ignores
|
||||
- **docs/READY_TO_SHARE.md** - Distribution guide
|
||||
|
||||
## Architecture
|
||||
|
||||
### Monorepo Structure
|
||||
|
||||
The repository is organized as a monorepo with two main components:
|
||||
|
||||
1. **CLI Tools** (`cli/`): Standalone Python scripts for direct command-line usage
|
||||
2. **MCP Server** (`mcp/`): Model Context Protocol server for Claude Code integration
|
||||
|
||||
Both components share the same configuration files and output directory.
|
||||
|
||||
### Data Flow
|
||||
|
||||
```
|
||||
Config (configs/*.json)
|
||||
↓
|
||||
CLI Tools OR MCP Server
|
||||
↓
|
||||
Scraper (cli/doc_scraper.py)
|
||||
↓
|
||||
Output (output/{name}_data/)
|
||||
↓
|
||||
Builder (cli/doc_scraper.py)
|
||||
↓
|
||||
Skill (output/{name}/)
|
||||
↓
|
||||
Enhancer (optional)
|
||||
↓
|
||||
Packager (cli/package_skill.py)
|
||||
↓
|
||||
Skill .zip (output/{name}.zip)
|
||||
```
|
||||
|
||||
47
TODO.md
47
TODO.md
@@ -6,9 +6,9 @@
|
||||
- [x] Implement 6 basic tools
|
||||
- [x] Update tests for new structure
|
||||
|
||||
## Phase 2: MCP Enhancement 🚧 IN PROGRESS
|
||||
- [ ] Fix remaining 3 test failures
|
||||
- [ ] Add MCP configuration examples
|
||||
## Phase 2: MCP Enhancement ✅ DONE
|
||||
- [x] Fix remaining 3 test failures (100% pass rate achieved!)
|
||||
- [x] Add MCP configuration examples
|
||||
- [ ] Test MCP server with Claude Code
|
||||
- [ ] Add error handling improvements
|
||||
- [ ] Add logging to MCP tools
|
||||
@@ -20,8 +20,11 @@
|
||||
- [ ] Batch operations (multiple configs at once)
|
||||
- [ ] Config templates for popular frameworks
|
||||
|
||||
## Phase 4: Documentation & Polish 📋 PLANNED
|
||||
- [ ] Update main README for monorepo
|
||||
## Phase 4: Documentation & Polish 🚧 IN PROGRESS
|
||||
- [x] Update main README for monorepo
|
||||
- [x] Update STRUCTURE.md for monorepo
|
||||
- [x] Update CLAUDE.md with CLI paths
|
||||
- [x] Update docs/USAGE.md with CLI paths
|
||||
- [ ] Create MCP setup guide with screenshots
|
||||
- [ ] Add video tutorial
|
||||
- [ ] Create example workflows
|
||||
@@ -39,21 +42,34 @@
|
||||
## Current Sprint (Week of Oct 19)
|
||||
|
||||
### Priority Tasks
|
||||
1. [ ] Fix 3 test failures (warnings vs errors) - **STARTED**
|
||||
2. [ ] Create MCP setup guide for Claude Code - **STARTED**
|
||||
3. [ ] Test MCP server to ensure it works - **STARTED**
|
||||
4. [ ] Update documentation for new monorepo structure - **STARTED**
|
||||
|
||||
### In Progress
|
||||
- Setting up tasks in planning tools
|
||||
- Organizing GitHub issues
|
||||
- Creating visual project board
|
||||
1. [x] Fix 3 test failures (warnings vs errors) - **DONE** ✅
|
||||
2. [x] Update documentation for new monorepo structure - **DONE** ✅
|
||||
3. [x] Create MCP setup guide for Claude Code - **DONE** ✅
|
||||
4. [x] Create MCP integration test template - **DONE** ✅
|
||||
5. [ ] Test MCP server with actual Claude Code - **NEXT**
|
||||
6. [ ] Create GitHub Project board and issues - **NEXT**
|
||||
|
||||
### Completed Today
|
||||
- [x] Monorepo refactor (cli/ and mcp/)
|
||||
- [x] MCP server implementation (6 tools)
|
||||
- [x] Planning structure (TODO.md, ROADMAP.md)
|
||||
- [x] Issue templates
|
||||
- [x] Fix all 3 test failures (100% pass rate!)
|
||||
- [x] Update STRUCTURE.md for monorepo
|
||||
- [x] Update CLAUDE.md with CLI paths
|
||||
- [x] Update docs/USAGE.md with CLI paths
|
||||
- [x] Add upper limit validation for config
|
||||
- [x] Create comprehensive MCP setup guide (docs/MCP_SETUP.md)
|
||||
- [x] Create MCP integration test template (tests/mcp_integration_test.md)
|
||||
- [x] Create example MCP config (.claude/mcp_config.example.json)
|
||||
|
||||
### Ready for Next Sprint
|
||||
- [ ] Test MCP server with Claude Code
|
||||
- [ ] Create comprehensive MCP setup guide
|
||||
- [ ] Create GitHub Project board
|
||||
- [ ] Create GitHub issues for tracking
|
||||
- [ ] Add error handling to MCP tools
|
||||
- [ ] Add logging to MCP tools
|
||||
|
||||
### Blockers
|
||||
- None
|
||||
@@ -61,5 +77,6 @@
|
||||
### Notes
|
||||
- MCP server uses stdio protocol
|
||||
- All CLI tools work via subprocess
|
||||
- Tests at 95.8% (68/71 passing)
|
||||
- Tests: 71/71 passing (100%) ✅
|
||||
- Branch: MCP_refactor
|
||||
- All documentation updated for monorepo structure
|
||||
|
||||
598
docs/MCP_SETUP.md
Normal file
598
docs/MCP_SETUP.md
Normal file
@@ -0,0 +1,598 @@
|
||||
# Complete MCP Setup Guide for Claude Code
|
||||
|
||||
Step-by-step guide to set up the Skill Seeker MCP server with Claude Code.
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Installation](#installation)
|
||||
- [Configuration](#configuration)
|
||||
- [Verification](#verification)
|
||||
- [Usage Examples](#usage-examples)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Advanced Configuration](#advanced-configuration)
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Required Software
|
||||
|
||||
1. **Python 3.7 or higher**
|
||||
```bash
|
||||
python3 --version
|
||||
# Should show: Python 3.7.x or higher
|
||||
```
|
||||
|
||||
2. **Claude Code installed**
|
||||
- Download from [claude.ai/code](https://claude.ai/code)
|
||||
- Requires Claude Pro or Claude Code Max subscription
|
||||
|
||||
3. **Skill Seeker repository cloned**
|
||||
```bash
|
||||
git clone https://github.com/yusufkaraaslan/Skill_Seekers.git
|
||||
cd Skill_Seekers
|
||||
```
|
||||
|
||||
### System Requirements
|
||||
|
||||
- **Operating System**: macOS, Linux, or Windows (WSL)
|
||||
- **Disk Space**: 100 MB for dependencies + space for generated skills
|
||||
- **Network**: Internet connection for documentation scraping
|
||||
|
||||
---
|
||||
|
||||
## Installation
|
||||
|
||||
### Step 1: Install Python Dependencies
|
||||
|
||||
```bash
|
||||
# Navigate to repository root
|
||||
cd /path/to/Skill_Seekers
|
||||
|
||||
# Install MCP server dependencies
|
||||
pip3 install -r mcp/requirements.txt
|
||||
|
||||
# Install CLI tool dependencies (for scraping)
|
||||
pip3 install requests beautifulsoup4
|
||||
```
|
||||
|
||||
**Expected output:**
|
||||
```
|
||||
Successfully installed mcp-0.9.0 requests-2.31.0 beautifulsoup4-4.12.3
|
||||
```
|
||||
|
||||
### Step 2: Verify Installation
|
||||
|
||||
```bash
|
||||
# Test MCP server can start
|
||||
python3 mcp/server.py
|
||||
|
||||
# You should see MCP protocol initialization (Ctrl+C to exit)
|
||||
```
|
||||
|
||||
### Step 3: Note Your Repository Path
|
||||
|
||||
```bash
|
||||
# Get absolute path
|
||||
pwd
|
||||
|
||||
# Example output: /Users/username/Projects/Skill_Seekers
|
||||
# or: /home/username/Skill_Seekers
|
||||
```
|
||||
|
||||
**Save this path** - you'll need it for configuration!
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
### Step 1: Locate Claude Code MCP Configuration
|
||||
|
||||
Claude Code stores MCP configuration in:
|
||||
|
||||
- **macOS**: `~/.config/claude-code/mcp.json`
|
||||
- **Linux**: `~/.config/claude-code/mcp.json`
|
||||
- **Windows (WSL)**: `~/.config/claude-code/mcp.json`
|
||||
|
||||
### Step 2: Create/Edit Configuration File
|
||||
|
||||
```bash
|
||||
# Create config directory if it doesn't exist
|
||||
mkdir -p ~/.config/claude-code
|
||||
|
||||
# Edit the configuration
|
||||
nano ~/.config/claude-code/mcp.json
|
||||
```
|
||||
|
||||
### Step 3: Add Skill Seeker MCP Server
|
||||
|
||||
**Full Configuration Example:**
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/Users/username/Projects/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/Users/username/Projects/Skill_Seekers",
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**IMPORTANT:** Replace `/Users/username/Projects/Skill_Seekers` with YOUR actual repository path!
|
||||
|
||||
**If you already have other MCP servers:**
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"existing-server": {
|
||||
"command": "node",
|
||||
"args": ["/path/to/existing/server.js"]
|
||||
},
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/Users/username/Projects/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/Users/username/Projects/Skill_Seekers"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Step 4: Save and Restart Claude Code
|
||||
|
||||
1. Save the file (`Ctrl+O` in nano, then `Enter`)
|
||||
2. Exit editor (`Ctrl+X` in nano)
|
||||
3. **Completely restart Claude Code** (quit and reopen)
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
### Step 1: Check MCP Server Loaded
|
||||
|
||||
In Claude Code, type:
|
||||
```
|
||||
List all available MCP tools
|
||||
```
|
||||
|
||||
You should see 6 Skill Seeker tools:
|
||||
- `generate_config`
|
||||
- `estimate_pages`
|
||||
- `scrape_docs`
|
||||
- `package_skill`
|
||||
- `list_configs`
|
||||
- `validate_config`
|
||||
|
||||
### Step 2: Test a Simple Command
|
||||
|
||||
```
|
||||
List all available configs
|
||||
```
|
||||
|
||||
**Expected response:**
|
||||
```
|
||||
Available configurations:
|
||||
1. godot - Godot Engine documentation
|
||||
2. react - React framework
|
||||
3. vue - Vue.js framework
|
||||
4. django - Django web framework
|
||||
5. fastapi - FastAPI Python framework
|
||||
6. kubernetes - Kubernetes documentation
|
||||
7. steam-economy-complete - Steam Economy API
|
||||
```
|
||||
|
||||
### Step 3: Test Config Generation
|
||||
|
||||
```
|
||||
Generate a config for Tailwind CSS at https://tailwindcss.com/docs
|
||||
```
|
||||
|
||||
**Expected response:**
|
||||
```
|
||||
✅ Config created: configs/tailwind.json
|
||||
```
|
||||
|
||||
**Verify the file exists:**
|
||||
```bash
|
||||
ls configs/tailwind.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Example 1: Generate Skill from Scratch
|
||||
|
||||
```
|
||||
User: Generate config for Svelte docs at https://svelte.dev/docs
|
||||
|
||||
Claude: ✅ Config created: configs/svelte.json
|
||||
|
||||
User: Estimate pages for configs/svelte.json
|
||||
|
||||
Claude: 📊 Estimated pages: 150
|
||||
Recommended max_pages: 180
|
||||
|
||||
User: Scrape docs using configs/svelte.json
|
||||
|
||||
Claude: ✅ Skill created at output/svelte/
|
||||
Run: python3 cli/package_skill.py output/svelte/
|
||||
|
||||
User: Package skill at output/svelte/
|
||||
|
||||
Claude: ✅ Created: output/svelte.zip
|
||||
Ready to upload to Claude!
|
||||
```
|
||||
|
||||
### Example 2: Use Existing Config
|
||||
|
||||
```
|
||||
User: List all available configs
|
||||
|
||||
Claude: [Shows 7 configs]
|
||||
|
||||
User: Scrape docs using configs/react.json with max 50 pages
|
||||
|
||||
Claude: ✅ Skill created at output/react/
|
||||
|
||||
User: Package skill at output/react/
|
||||
|
||||
Claude: ✅ Created: output/react.zip
|
||||
```
|
||||
|
||||
### Example 3: Validate Before Scraping
|
||||
|
||||
```
|
||||
User: Validate configs/godot.json
|
||||
|
||||
Claude: ✅ Config is valid
|
||||
- Base URL: https://docs.godotengine.org/en/stable/
|
||||
- Max pages: 500
|
||||
- Rate limit: 0.5s
|
||||
- Categories: 3
|
||||
|
||||
User: Estimate pages for configs/godot.json
|
||||
|
||||
Claude: 📊 Estimated pages: 450
|
||||
Current max_pages (500) is sufficient
|
||||
|
||||
User: Scrape docs using configs/godot.json
|
||||
|
||||
Claude: [Scraping starts...]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issue: MCP Server Not Loading
|
||||
|
||||
**Symptoms:**
|
||||
- Skill Seeker tools don't appear in Claude Code
|
||||
- No response when asking about configs
|
||||
|
||||
**Solutions:**
|
||||
|
||||
1. **Check configuration path:**
|
||||
```bash
|
||||
cat ~/.config/claude-code/mcp.json
|
||||
```
|
||||
|
||||
2. **Verify Python path:**
|
||||
```bash
|
||||
which python3
|
||||
# Should show: /usr/bin/python3 or /usr/local/bin/python3
|
||||
```
|
||||
|
||||
3. **Test server manually:**
|
||||
```bash
|
||||
cd /path/to/Skill_Seekers
|
||||
python3 mcp/server.py
|
||||
# Should start without errors
|
||||
```
|
||||
|
||||
4. **Check Claude Code logs:**
|
||||
- macOS: `~/Library/Logs/Claude Code/`
|
||||
- Linux: `~/.config/claude-code/logs/`
|
||||
|
||||
5. **Completely restart Claude Code:**
|
||||
- Quit Claude Code (don't just close window)
|
||||
- Reopen Claude Code
|
||||
|
||||
### Issue: "ModuleNotFoundError: No module named 'mcp'"
|
||||
|
||||
**Solution:**
|
||||
```bash
|
||||
pip3 install -r mcp/requirements.txt
|
||||
```
|
||||
|
||||
### Issue: "Permission denied" when running server
|
||||
|
||||
**Solution:**
|
||||
```bash
|
||||
chmod +x mcp/server.py
|
||||
```
|
||||
|
||||
### Issue: Tools appear but don't work
|
||||
|
||||
**Symptoms:**
|
||||
- Tools listed but commands fail
|
||||
- "Error executing tool" messages
|
||||
|
||||
**Solutions:**
|
||||
|
||||
1. **Check working directory in config:**
|
||||
```json
|
||||
{
|
||||
"cwd": "/FULL/PATH/TO/Skill_Seekers"
|
||||
}
|
||||
```
|
||||
|
||||
2. **Verify CLI tools exist:**
|
||||
```bash
|
||||
ls cli/doc_scraper.py
|
||||
ls cli/estimate_pages.py
|
||||
ls cli/package_skill.py
|
||||
```
|
||||
|
||||
3. **Test CLI tools directly:**
|
||||
```bash
|
||||
python3 cli/doc_scraper.py --help
|
||||
```
|
||||
|
||||
### Issue: Slow or hanging operations
|
||||
|
||||
**Solutions:**
|
||||
|
||||
1. **Check rate limit in config:**
|
||||
- Default: 0.5 seconds
|
||||
- Increase if needed: 1.0 or 2.0 seconds
|
||||
|
||||
2. **Use smaller max_pages for testing:**
|
||||
```
|
||||
Generate config with max_pages=20 for testing
|
||||
```
|
||||
|
||||
3. **Check network connection:**
|
||||
```bash
|
||||
curl -I https://docs.example.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Custom Environment Variables
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": ["/path/to/Skill_Seekers/mcp/server.py"],
|
||||
"cwd": "/path/to/Skill_Seekers",
|
||||
"env": {
|
||||
"ANTHROPIC_API_KEY": "sk-ant-...",
|
||||
"PYTHONPATH": "/custom/path"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Multiple Python Versions
|
||||
|
||||
If you have multiple Python versions:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "/usr/local/bin/python3.11",
|
||||
"args": ["/path/to/Skill_Seekers/mcp/server.py"],
|
||||
"cwd": "/path/to/Skill_Seekers"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Virtual Environment
|
||||
|
||||
To use a Python virtual environment:
|
||||
|
||||
```bash
|
||||
# Create venv
|
||||
cd /path/to/Skill_Seekers
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r mcp/requirements.txt
|
||||
pip install requests beautifulsoup4
|
||||
which python3
|
||||
# Copy this path for config
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "/path/to/Skill_Seekers/venv/bin/python3",
|
||||
"args": ["/path/to/Skill_Seekers/mcp/server.py"],
|
||||
"cwd": "/path/to/Skill_Seekers"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Debug Mode
|
||||
|
||||
Enable verbose logging:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"-u",
|
||||
"/path/to/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/path/to/Skill_Seekers",
|
||||
"env": {
|
||||
"DEBUG": "1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Complete Example Configuration
|
||||
|
||||
**Minimal (recommended for most users):**
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/Users/username/Projects/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/Users/username/Projects/Skill_Seekers"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**With API enhancement:**
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/Users/username/Projects/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/Users/username/Projects/Skill_Seekers",
|
||||
"env": {
|
||||
"ANTHROPIC_API_KEY": "sk-ant-your-key-here"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## End-to-End Workflow
|
||||
|
||||
### Complete Setup and First Skill
|
||||
|
||||
```bash
|
||||
# 1. Install
|
||||
cd ~/Projects
|
||||
git clone https://github.com/yusufkaraaslan/Skill_Seekers.git
|
||||
cd Skill_Seekers
|
||||
pip3 install -r mcp/requirements.txt
|
||||
pip3 install requests beautifulsoup4
|
||||
|
||||
# 2. Configure
|
||||
mkdir -p ~/.config/claude-code
|
||||
cat > ~/.config/claude-code/mcp.json << 'EOF'
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/Users/username/Projects/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/Users/username/Projects/Skill_Seekers"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
# (Replace paths with your actual paths!)
|
||||
|
||||
# 3. Restart Claude Code
|
||||
|
||||
# 4. Test in Claude Code:
|
||||
```
|
||||
|
||||
**In Claude Code:**
|
||||
```
|
||||
User: List all available configs
|
||||
User: Scrape docs using configs/react.json with max 50 pages
|
||||
User: Package skill at output/react/
|
||||
```
|
||||
|
||||
**Result:** `output/react.zip` ready to upload!
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
After successful setup:
|
||||
|
||||
1. **Try preset configs:**
|
||||
- React: `scrape docs using configs/react.json`
|
||||
- Vue: `scrape docs using configs/vue.json`
|
||||
- Django: `scrape docs using configs/django.json`
|
||||
|
||||
2. **Create custom configs:**
|
||||
- `generate config for [framework] at [url]`
|
||||
|
||||
3. **Test with small limits first:**
|
||||
- Use `max_pages` parameter: `scrape docs using configs/test.json with max 20 pages`
|
||||
|
||||
4. **Explore enhancement:**
|
||||
- Use `--enhance-local` flag for AI-powered SKILL.md improvement
|
||||
|
||||
---
|
||||
|
||||
## Getting Help
|
||||
|
||||
- **Documentation**: See [mcp/README.md](../mcp/README.md)
|
||||
- **Issues**: [GitHub Issues](https://github.com/yusufkaraaslan/Skill_Seekers/issues)
|
||||
- **Examples**: See [.github/ISSUES_TO_CREATE.md](../.github/ISSUES_TO_CREATE.md) for test cases
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference Card
|
||||
|
||||
```
|
||||
SETUP:
|
||||
1. Install dependencies: pip3 install -r mcp/requirements.txt
|
||||
2. Configure: ~/.config/claude-code/mcp.json
|
||||
3. Restart Claude Code
|
||||
|
||||
VERIFY:
|
||||
- "List all available configs"
|
||||
- "Validate configs/react.json"
|
||||
|
||||
GENERATE SKILL:
|
||||
1. "Generate config for [name] at [url]"
|
||||
2. "Estimate pages for configs/[name].json"
|
||||
3. "Scrape docs using configs/[name].json"
|
||||
4. "Package skill at output/[name]/"
|
||||
|
||||
TROUBLESHOOTING:
|
||||
- Check: cat ~/.config/claude-code/mcp.json
|
||||
- Test: python3 mcp/server.py
|
||||
- Logs: ~/Library/Logs/Claude Code/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Happy skill creating! 🚀
|
||||
138
docs/USAGE.md
138
docs/USAGE.md
@@ -20,19 +20,19 @@ Comprehensive reference for all commands, options, and workflows.
|
||||
|
||||
```bash
|
||||
# 1. Estimate pages (fast, 1-2 min)
|
||||
python3 estimate_pages.py configs/react.json
|
||||
python3 cli/estimate_pages.py configs/react.json
|
||||
|
||||
# 2. Scrape documentation (20-40 min)
|
||||
python3 doc_scraper.py --config configs/react.json
|
||||
python3 cli/doc_scraper.py --config configs/react.json
|
||||
|
||||
# 3. Enhance with Claude Code (60 sec)
|
||||
python3 enhance_skill_local.py output/react/
|
||||
python3 cli/enhance_skill_local.py output/react/
|
||||
|
||||
# 4. Package to .zip (instant)
|
||||
python3 package_skill.py output/react/
|
||||
python3 cli/package_skill.py output/react/
|
||||
|
||||
# 5. Test everything (1 sec)
|
||||
python3 run_tests.py
|
||||
python3 cli/run_tests.py
|
||||
```
|
||||
|
||||
---
|
||||
@@ -70,16 +70,16 @@ options:
|
||||
|
||||
**1. Use Preset Config (Recommended)**
|
||||
```bash
|
||||
python3 doc_scraper.py --config configs/godot.json
|
||||
python3 doc_scraper.py --config configs/react.json
|
||||
python3 doc_scraper.py --config configs/vue.json
|
||||
python3 doc_scraper.py --config configs/django.json
|
||||
python3 doc_scraper.py --config configs/fastapi.json
|
||||
python3 cli/doc_scraper.py --config configs/godot.json
|
||||
python3 cli/doc_scraper.py --config configs/react.json
|
||||
python3 cli/doc_scraper.py --config configs/vue.json
|
||||
python3 cli/doc_scraper.py --config configs/django.json
|
||||
python3 cli/doc_scraper.py --config configs/fastapi.json
|
||||
```
|
||||
|
||||
**2. Interactive Mode**
|
||||
```bash
|
||||
python3 doc_scraper.py --interactive
|
||||
python3 cli/doc_scraper.py --interactive
|
||||
# Wizard walks you through:
|
||||
# - Skill name
|
||||
# - Base URL
|
||||
@@ -92,7 +92,7 @@ python3 doc_scraper.py --interactive
|
||||
|
||||
**3. Quick Mode (Minimal)**
|
||||
```bash
|
||||
python3 doc_scraper.py \
|
||||
python3 cli/doc_scraper.py \
|
||||
--name react \
|
||||
--url https://react.dev/ \
|
||||
--description "React framework for building UIs"
|
||||
@@ -100,7 +100,7 @@ python3 doc_scraper.py \
|
||||
|
||||
**4. Dry-Run (Preview)**
|
||||
```bash
|
||||
python3 doc_scraper.py --config configs/react.json --dry-run
|
||||
python3 cli/doc_scraper.py --config configs/react.json --dry-run
|
||||
# Shows what will be scraped without downloading data
|
||||
# No directories created
|
||||
# Fast validation
|
||||
@@ -108,7 +108,7 @@ python3 doc_scraper.py --config configs/react.json --dry-run
|
||||
|
||||
**5. Skip Scraping (Use Cached Data)**
|
||||
```bash
|
||||
python3 doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
python3 cli/doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
# Uses existing output/godot_data/
|
||||
# Fast rebuild (1-3 minutes)
|
||||
# Useful for testing changes
|
||||
@@ -116,7 +116,7 @@ python3 doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
|
||||
**6. With Local Enhancement**
|
||||
```bash
|
||||
python3 doc_scraper.py --config configs/react.json --enhance-local
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance-local
|
||||
# Scrapes + enhances in one command
|
||||
# Opens new terminal for Claude Code
|
||||
# No API key needed
|
||||
@@ -125,10 +125,10 @@ python3 doc_scraper.py --config configs/react.json --enhance-local
|
||||
**7. With API Enhancement**
|
||||
```bash
|
||||
export ANTHROPIC_API_KEY=sk-ant-...
|
||||
python3 doc_scraper.py --config configs/react.json --enhance
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance
|
||||
|
||||
# Or with inline API key:
|
||||
python3 doc_scraper.py --config configs/react.json --enhance --api-key sk-ant-...
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance --api-key sk-ant-...
|
||||
```
|
||||
|
||||
### Output Structure
|
||||
@@ -182,28 +182,28 @@ options:
|
||||
|
||||
**1. Quick Estimate (100 pages)**
|
||||
```bash
|
||||
python3 estimate_pages.py configs/react.json --max-discovery 100
|
||||
python3 cli/estimate_pages.py configs/react.json --max-discovery 100
|
||||
# Time: ~30-60 seconds
|
||||
# Good for: Quick validation
|
||||
```
|
||||
|
||||
**2. Standard Estimate (1000 pages - default)**
|
||||
```bash
|
||||
python3 estimate_pages.py configs/godot.json
|
||||
python3 cli/estimate_pages.py configs/godot.json
|
||||
# Time: ~1-2 minutes
|
||||
# Good for: Most use cases
|
||||
```
|
||||
|
||||
**3. Deep Estimate (2000 pages)**
|
||||
```bash
|
||||
python3 estimate_pages.py configs/vue.json --max-discovery 2000
|
||||
python3 cli/estimate_pages.py configs/vue.json --max-discovery 2000
|
||||
# Time: ~3-5 minutes
|
||||
# Good for: Large documentation sites
|
||||
```
|
||||
|
||||
**4. Custom Timeout**
|
||||
```bash
|
||||
python3 estimate_pages.py configs/django.json --timeout 60
|
||||
python3 cli/estimate_pages.py configs/django.json --timeout 60
|
||||
# Useful for slow servers
|
||||
```
|
||||
|
||||
@@ -259,8 +259,8 @@ Base URL: https://react.dev/
|
||||
|
||||
```bash
|
||||
# Usage
|
||||
python3 enhance_skill_local.py output/react/
|
||||
python3 enhance_skill_local.py output/godot/
|
||||
python3 cli/enhance_skill_local.py output/react/
|
||||
python3 cli/enhance_skill_local.py output/godot/
|
||||
|
||||
# What it does:
|
||||
# 1. Reads SKILL.md and references/
|
||||
@@ -283,10 +283,10 @@ pip3 install anthropic
|
||||
|
||||
# Usage with environment variable
|
||||
export ANTHROPIC_API_KEY=sk-ant-...
|
||||
python3 enhance_skill.py output/react/
|
||||
python3 cli/enhance_skill.py output/react/
|
||||
|
||||
# Usage with inline API key
|
||||
python3 enhance_skill.py output/godot/ --api-key sk-ant-...
|
||||
python3 cli/enhance_skill.py output/godot/ --api-key sk-ant-...
|
||||
|
||||
# What it does:
|
||||
# 1. Reads SKILL.md and references/
|
||||
@@ -307,8 +307,8 @@ python3 enhance_skill.py output/godot/ --api-key sk-ant-...
|
||||
|
||||
```bash
|
||||
# Usage
|
||||
python3 package_skill.py output/react/
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/react/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
|
||||
# What it does:
|
||||
# 1. Validates SKILL.md exists
|
||||
@@ -330,28 +330,28 @@ python3 package_skill.py output/godot/
|
||||
|
||||
```bash
|
||||
# Run all tests (default)
|
||||
python3 run_tests.py
|
||||
python3 cli/run_tests.py
|
||||
# 71 tests, ~1 second
|
||||
|
||||
# Verbose output
|
||||
python3 run_tests.py -v
|
||||
python3 run_tests.py --verbose
|
||||
python3 cli/run_tests.py -v
|
||||
python3 cli/run_tests.py --verbose
|
||||
|
||||
# Quiet output
|
||||
python3 run_tests.py -q
|
||||
python3 run_tests.py --quiet
|
||||
python3 cli/run_tests.py -q
|
||||
python3 cli/run_tests.py --quiet
|
||||
|
||||
# Stop on first failure
|
||||
python3 run_tests.py -f
|
||||
python3 run_tests.py --failfast
|
||||
python3 cli/run_tests.py -f
|
||||
python3 cli/run_tests.py --failfast
|
||||
|
||||
# Run specific test suite
|
||||
python3 run_tests.py --suite config
|
||||
python3 run_tests.py --suite features
|
||||
python3 run_tests.py --suite integration
|
||||
python3 cli/run_tests.py --suite config
|
||||
python3 cli/run_tests.py --suite features
|
||||
python3 cli/run_tests.py --suite integration
|
||||
|
||||
# List all tests
|
||||
python3 run_tests.py --list
|
||||
python3 cli/run_tests.py --list
|
||||
```
|
||||
|
||||
### Individual Tests
|
||||
@@ -434,13 +434,13 @@ python3 -m json.tool configs/godot.json
|
||||
|
||||
```bash
|
||||
# 1. Estimate (optional, 1-2 min)
|
||||
python3 estimate_pages.py configs/react.json
|
||||
python3 cli/estimate_pages.py configs/react.json
|
||||
|
||||
# 2. Scrape with local enhancement (25 min)
|
||||
python3 doc_scraper.py --config configs/react.json --enhance-local
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance-local
|
||||
|
||||
# 3. Package (instant)
|
||||
python3 package_skill.py output/react/
|
||||
python3 cli/package_skill.py output/react/
|
||||
|
||||
# Result: output/react.zip
|
||||
# Upload to Claude!
|
||||
@@ -461,26 +461,26 @@ cat > configs/my-docs.json << 'EOF'
|
||||
EOF
|
||||
|
||||
# 2. Estimate
|
||||
python3 estimate_pages.py configs/my-docs.json
|
||||
python3 cli/estimate_pages.py configs/my-docs.json
|
||||
|
||||
# 3. Dry-run test
|
||||
python3 doc_scraper.py --config configs/my-docs.json --dry-run
|
||||
python3 cli/doc_scraper.py --config configs/my-docs.json --dry-run
|
||||
|
||||
# 4. Full scrape
|
||||
python3 doc_scraper.py --config configs/my-docs.json
|
||||
python3 cli/doc_scraper.py --config configs/my-docs.json
|
||||
|
||||
# 5. Enhance
|
||||
python3 enhance_skill_local.py output/my-docs/
|
||||
python3 cli/enhance_skill_local.py output/my-docs/
|
||||
|
||||
# 6. Package
|
||||
python3 package_skill.py output/my-docs/
|
||||
python3 cli/package_skill.py output/my-docs/
|
||||
```
|
||||
|
||||
### Workflow 3: Interactive Mode
|
||||
|
||||
```bash
|
||||
# 1. Start interactive wizard
|
||||
python3 doc_scraper.py --interactive
|
||||
python3 cli/doc_scraper.py --interactive
|
||||
|
||||
# 2. Answer prompts:
|
||||
# - Name: my-framework
|
||||
@@ -491,16 +491,16 @@ python3 doc_scraper.py --interactive
|
||||
# - Max pages: 100
|
||||
|
||||
# 3. Enhance
|
||||
python3 enhance_skill_local.py output/my-framework/
|
||||
python3 cli/enhance_skill_local.py output/my-framework/
|
||||
|
||||
# 4. Package
|
||||
python3 package_skill.py output/my-framework/
|
||||
python3 cli/package_skill.py output/my-framework/
|
||||
```
|
||||
|
||||
### Workflow 4: Quick Mode
|
||||
|
||||
```bash
|
||||
python3 doc_scraper.py \
|
||||
python3 cli/doc_scraper.py \
|
||||
--name vue \
|
||||
--url https://vuejs.org/ \
|
||||
--description "Vue.js framework" \
|
||||
@@ -512,13 +512,13 @@ python3 doc_scraper.py \
|
||||
```bash
|
||||
# Already scraped once?
|
||||
# Skip re-scraping, just rebuild
|
||||
python3 doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
python3 cli/doc_scraper.py --config configs/godot.json --skip-scrape
|
||||
|
||||
# Try new enhancement
|
||||
python3 enhance_skill_local.py output/godot/
|
||||
python3 cli/enhance_skill_local.py output/godot/
|
||||
|
||||
# Re-package
|
||||
python3 package_skill.py output/godot/
|
||||
python3 cli/package_skill.py output/godot/
|
||||
```
|
||||
|
||||
### Workflow 6: Testing New Config
|
||||
@@ -535,13 +535,13 @@ cat > configs/test.json << 'EOF'
|
||||
EOF
|
||||
|
||||
# 2. Estimate
|
||||
python3 estimate_pages.py configs/test.json --max-discovery 50
|
||||
python3 cli/estimate_pages.py configs/test.json --max-discovery 50
|
||||
|
||||
# 3. Dry-run
|
||||
python3 doc_scraper.py --config configs/test.json --dry-run
|
||||
python3 cli/doc_scraper.py --config configs/test.json --dry-run
|
||||
|
||||
# 4. Small scrape
|
||||
python3 doc_scraper.py --config configs/test.json
|
||||
python3 cli/doc_scraper.py --config configs/test.json
|
||||
|
||||
# 5. Validate output
|
||||
ls output/test-site/
|
||||
@@ -572,7 +572,7 @@ ls output/test-site/references/
|
||||
|
||||
```bash
|
||||
# Estimate first
|
||||
python3 estimate_pages.py configs/my-config.json
|
||||
python3 cli/estimate_pages.py configs/my-config.json
|
||||
|
||||
# Set max_pages based on estimate
|
||||
# Add buffer: estimated + 50
|
||||
@@ -622,7 +622,7 @@ python3 -m unittest tests.test_config_validation.TestConfigValidation.test_name
|
||||
echo $ANTHROPIC_API_KEY
|
||||
|
||||
# Or use inline:
|
||||
python3 enhance_skill.py output/react/ --api-key sk-ant-...
|
||||
python3 cli/enhance_skill.py output/react/ --api-key sk-ant-...
|
||||
```
|
||||
|
||||
### Issue: "Package fails"
|
||||
@@ -632,7 +632,7 @@ python3 enhance_skill.py output/react/ --api-key sk-ant-...
|
||||
ls output/my-skill/SKILL.md
|
||||
|
||||
# If missing, build first:
|
||||
python3 doc_scraper.py --config configs/my-skill.json --skip-scrape
|
||||
python3 cli/doc_scraper.py --config configs/my-skill.json --skip-scrape
|
||||
```
|
||||
|
||||
### Issue: "Can't find output"
|
||||
@@ -773,9 +773,9 @@ Skill_Seekers/
|
||||
|
||||
```bash
|
||||
# Tool-specific help
|
||||
python3 doc_scraper.py --help
|
||||
python3 estimate_pages.py --help
|
||||
python3 run_tests.py --help
|
||||
python3 cli/doc_scraper.py --help
|
||||
python3 cli/estimate_pages.py --help
|
||||
python3 cli/run_tests.py --help
|
||||
|
||||
# Documentation
|
||||
cat CLAUDE.md # Quick reference for Claude Code
|
||||
@@ -793,18 +793,18 @@ cat README.md # Project overview
|
||||
|
||||
**Essential Commands:**
|
||||
```bash
|
||||
python3 estimate_pages.py configs/react.json # Estimate
|
||||
python3 doc_scraper.py --config configs/react.json # Scrape
|
||||
python3 enhance_skill_local.py output/react/ # Enhance
|
||||
python3 package_skill.py output/react/ # Package
|
||||
python3 run_tests.py # Test
|
||||
python3 cli/estimate_pages.py configs/react.json # Estimate
|
||||
python3 cli/doc_scraper.py --config configs/react.json # Scrape
|
||||
python3 cli/enhance_skill_local.py output/react/ # Enhance
|
||||
python3 cli/package_skill.py output/react/ # Package
|
||||
python3 cli/run_tests.py # Test
|
||||
```
|
||||
|
||||
**Quick Start:**
|
||||
```bash
|
||||
pip3 install requests beautifulsoup4
|
||||
python3 doc_scraper.py --config configs/react.json --enhance-local
|
||||
python3 package_skill.py output/react/
|
||||
python3 cli/doc_scraper.py --config configs/react.json --enhance-local
|
||||
python3 cli/package_skill.py output/react/
|
||||
# Upload output/react.zip to Claude!
|
||||
```
|
||||
|
||||
|
||||
567
tests/mcp_integration_test.md
Normal file
567
tests/mcp_integration_test.md
Normal file
@@ -0,0 +1,567 @@
|
||||
# MCP Integration Test Results
|
||||
|
||||
Test documentation for Skill Seeker MCP server with Claude Code.
|
||||
|
||||
---
|
||||
|
||||
## Test Overview
|
||||
|
||||
**Goal:** Verify MCP server works correctly with actual Claude Code instance
|
||||
|
||||
**Date:** [To be filled when tested]
|
||||
|
||||
**Tester:** [To be filled]
|
||||
|
||||
**Environment:**
|
||||
- OS: [macOS / Linux / Windows WSL]
|
||||
- Python Version: [e.g., 3.11.5]
|
||||
- Claude Code Version: [e.g., 1.0.0]
|
||||
- MCP Package Version: [e.g., 0.9.0]
|
||||
|
||||
---
|
||||
|
||||
## Setup Checklist
|
||||
|
||||
- [ ] Python 3.7+ installed
|
||||
- [ ] Claude Code installed and running
|
||||
- [ ] Repository cloned
|
||||
- [ ] MCP dependencies installed (`pip3 install -r mcp/requirements.txt`)
|
||||
- [ ] CLI dependencies installed (`pip3 install requests beautifulsoup4`)
|
||||
- [ ] MCP server configured in `~/.config/claude-code/mcp.json`
|
||||
- [ ] Claude Code restarted after configuration
|
||||
|
||||
---
|
||||
|
||||
## Test Cases
|
||||
|
||||
### Test 1: List Configs
|
||||
|
||||
**Command:**
|
||||
```
|
||||
List all available configs
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Shows 7 preset configurations
|
||||
- Lists: godot, react, vue, django, fastapi, kubernetes, steam-economy-complete
|
||||
- Each with description
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
**Notes:**
|
||||
```
|
||||
[Any observations]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Test 2: Validate Config
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Validate configs/react.json
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Shows "Config is valid"
|
||||
- Displays config details (base_url, max_pages, rate_limit, categories)
|
||||
- No errors or warnings
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
**Notes:**
|
||||
```
|
||||
[Any observations]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Test 3: Generate Config
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Generate config for Tailwind CSS at https://tailwindcss.com/docs
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Creates `configs/tailwind.json`
|
||||
- File contains valid JSON
|
||||
- Has required fields: name, base_url, description
|
||||
- Has default values for optional fields
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Config File Created:** [ ] Yes / [ ] No
|
||||
|
||||
**Config Validation:**
|
||||
```bash
|
||||
# Verify file exists
|
||||
ls configs/tailwind.json
|
||||
|
||||
# Verify valid JSON
|
||||
python3 -m json.tool configs/tailwind.json
|
||||
|
||||
# Check contents
|
||||
cat configs/tailwind.json
|
||||
```
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
**Notes:**
|
||||
```
|
||||
[Any observations]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Test 4: Estimate Pages
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Estimate pages for configs/react.json with max discovery 100
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Shows progress during estimation
|
||||
- Completes in ~30-60 seconds
|
||||
- Shows discovered pages count
|
||||
- Shows estimated total
|
||||
- Recommends max_pages value
|
||||
- No errors or timeouts
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Performance:**
|
||||
- Time taken: [X seconds]
|
||||
- Pages discovered: [X]
|
||||
- Estimated total: [X]
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
**Notes:**
|
||||
```
|
||||
[Any observations]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Test 5: Scrape Docs (Small Test)
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Scrape docs using configs/kubernetes.json with max 10 pages
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Creates `output/kubernetes_data/` directory
|
||||
- Creates `output/kubernetes/` skill directory
|
||||
- Generates `output/kubernetes/SKILL.md`
|
||||
- Creates reference files in `output/kubernetes/references/`
|
||||
- Completes in ~1-2 minutes (for 10 pages)
|
||||
- No errors during scraping
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Files Created:**
|
||||
```bash
|
||||
# Check directories
|
||||
ls output/kubernetes_data/
|
||||
ls output/kubernetes/
|
||||
ls output/kubernetes/references/
|
||||
|
||||
# Check SKILL.md
|
||||
wc -l output/kubernetes/SKILL.md
|
||||
|
||||
# Count reference files
|
||||
ls output/kubernetes/references/ | wc -l
|
||||
```
|
||||
|
||||
**Performance:**
|
||||
- Time taken: [X minutes]
|
||||
- Pages scraped: [X]
|
||||
- Reference files created: [X]
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
**Notes:**
|
||||
```
|
||||
[Any observations]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Test 6: Package Skill
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Package skill at output/kubernetes/
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Creates `output/kubernetes.zip`
|
||||
- File is valid ZIP archive
|
||||
- Contains SKILL.md and references/
|
||||
- Size is reasonable (< 10 MB for 10 pages)
|
||||
- Completes in < 5 seconds
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**File Verification:**
|
||||
```bash
|
||||
# Check file exists
|
||||
ls -lh output/kubernetes.zip
|
||||
|
||||
# Check ZIP contents
|
||||
unzip -l output/kubernetes.zip
|
||||
|
||||
# Verify ZIP is valid
|
||||
unzip -t output/kubernetes.zip
|
||||
```
|
||||
|
||||
**Performance:**
|
||||
- Time taken: [X seconds]
|
||||
- ZIP file size: [X MB]
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
**Notes:**
|
||||
```
|
||||
[Any observations]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Additional Tests
|
||||
|
||||
### Test 7: Error Handling - Invalid Config
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Validate configs/nonexistent.json
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Shows clear error message
|
||||
- Does not crash
|
||||
- Suggests checking file path
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
---
|
||||
|
||||
### Test 8: Error Handling - Invalid URL
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Generate config for Test at not-a-valid-url
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Shows error about invalid URL
|
||||
- Does not create config file
|
||||
- Does not crash
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
---
|
||||
|
||||
### Test 9: Concurrent Tool Calls
|
||||
|
||||
**Commands (rapid succession):**
|
||||
```
|
||||
1. List all available configs
|
||||
2. Validate configs/react.json
|
||||
3. Validate configs/vue.json
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- All commands execute successfully
|
||||
- No race conditions
|
||||
- Responses are correct for each command
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
---
|
||||
|
||||
### Test 10: Large Scrape Operation
|
||||
|
||||
**Command:**
|
||||
```
|
||||
Scrape docs using configs/react.json with max 100 pages
|
||||
```
|
||||
|
||||
**Expected Result:**
|
||||
- Handles long-running operation (10-15 minutes)
|
||||
- Shows progress or remains responsive
|
||||
- Completes successfully
|
||||
- Creates comprehensive skill
|
||||
- No memory leaks
|
||||
|
||||
**Actual Result:**
|
||||
```
|
||||
[To be filled]
|
||||
```
|
||||
|
||||
**Performance:**
|
||||
- Time taken: [X minutes]
|
||||
- Pages scraped: [X]
|
||||
- Memory usage: [X MB]
|
||||
- Peak memory: [X MB]
|
||||
|
||||
**Status:** [ ] Pass / [ ] Fail
|
||||
|
||||
---
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
| Operation | Expected Time | Actual Time | Status |
|
||||
|-----------|--------------|-------------|--------|
|
||||
| List configs | < 1s | [X]s | [ ] |
|
||||
| Validate config | < 2s | [X]s | [ ] |
|
||||
| Generate config | < 3s | [X]s | [ ] |
|
||||
| Estimate pages (100) | 30-60s | [X]s | [ ] |
|
||||
| Scrape 10 pages | 1-2 min | [X]min | [ ] |
|
||||
| Scrape 100 pages | 10-15 min | [X]min | [ ] |
|
||||
| Package skill | < 5s | [X]s | [ ] |
|
||||
|
||||
---
|
||||
|
||||
## Issues Found
|
||||
|
||||
### Issue 1: [Title]
|
||||
|
||||
**Severity:** [ ] Critical / [ ] High / [ ] Medium / [ ] Low
|
||||
|
||||
**Description:**
|
||||
```
|
||||
[Detailed description of the issue]
|
||||
```
|
||||
|
||||
**Steps to Reproduce:**
|
||||
1. [Step 1]
|
||||
2. [Step 2]
|
||||
3. [Step 3]
|
||||
|
||||
**Expected Behavior:**
|
||||
```
|
||||
[What should happen]
|
||||
```
|
||||
|
||||
**Actual Behavior:**
|
||||
```
|
||||
[What actually happened]
|
||||
```
|
||||
|
||||
**Error Messages:**
|
||||
```
|
||||
[Any error messages or logs]
|
||||
```
|
||||
|
||||
**Workaround:**
|
||||
```
|
||||
[Temporary solution, if any]
|
||||
```
|
||||
|
||||
**Fix Required:** [ ] Yes / [ ] No
|
||||
|
||||
---
|
||||
|
||||
### Issue 2: [Title]
|
||||
|
||||
[Same format as Issue 1]
|
||||
|
||||
---
|
||||
|
||||
## Configuration Used
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"skill-seeker": {
|
||||
"command": "python3",
|
||||
"args": [
|
||||
"/path/to/Skill_Seekers/mcp/server.py"
|
||||
],
|
||||
"cwd": "/path/to/Skill_Seekers"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**Total Tests:** 10
|
||||
**Tests Passed:** [X]
|
||||
**Tests Failed:** [X]
|
||||
**Tests Skipped:** [X]
|
||||
|
||||
**Overall Status:** [ ] Pass / [ ] Fail / [ ] Partial
|
||||
|
||||
**Recommendation:**
|
||||
```
|
||||
[Ready for production / Needs fixes / Requires more testing]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Observations
|
||||
|
||||
### What Worked Well
|
||||
- [Observation 1]
|
||||
- [Observation 2]
|
||||
- [Observation 3]
|
||||
|
||||
### What Needs Improvement
|
||||
- [Observation 1]
|
||||
- [Observation 2]
|
||||
- [Observation 3]
|
||||
|
||||
### Suggestions
|
||||
- [Suggestion 1]
|
||||
- [Suggestion 2]
|
||||
- [Suggestion 3]
|
||||
|
||||
---
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [ ] Address critical issues
|
||||
- [ ] Re-test failed cases
|
||||
- [ ] Document workarounds
|
||||
- [ ] Update MCP server if needed
|
||||
- [ ] Update documentation based on findings
|
||||
- [ ] Create GitHub issues for bugs found
|
||||
|
||||
---
|
||||
|
||||
## Appendix: Test Commands Reference
|
||||
|
||||
```bash
|
||||
# Quick test sequence
|
||||
echo "Test 1: List configs"
|
||||
# User says: "List all available configs"
|
||||
|
||||
echo "Test 2: Validate"
|
||||
# User says: "Validate configs/react.json"
|
||||
|
||||
echo "Test 3: Generate"
|
||||
# User says: "Generate config for Tailwind CSS at https://tailwindcss.com/docs"
|
||||
|
||||
echo "Test 4: Estimate"
|
||||
# User says: "Estimate pages for configs/tailwind.json"
|
||||
|
||||
echo "Test 5: Scrape"
|
||||
# User says: "Scrape docs using configs/tailwind.json with max 10 pages"
|
||||
|
||||
echo "Test 6: Package"
|
||||
# User says: "Package skill at output/tailwind/"
|
||||
|
||||
# Verify results
|
||||
ls configs/tailwind.json
|
||||
ls output/tailwind/SKILL.md
|
||||
ls output/tailwind.zip
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Test Environment Setup Script
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Test environment setup
|
||||
|
||||
echo "Setting up MCP integration test environment..."
|
||||
|
||||
# 1. Check prerequisites
|
||||
echo "Checking Python version..."
|
||||
python3 --version
|
||||
|
||||
echo "Checking Claude Code..."
|
||||
# (Manual check required)
|
||||
|
||||
# 2. Install dependencies
|
||||
echo "Installing dependencies..."
|
||||
pip3 install -r mcp/requirements.txt
|
||||
pip3 install requests beautifulsoup4
|
||||
|
||||
# 3. Verify installation
|
||||
echo "Verifying MCP server..."
|
||||
timeout 2 python3 mcp/server.py || echo "Server can start"
|
||||
|
||||
# 4. Create test output directory
|
||||
echo "Creating test directories..."
|
||||
mkdir -p test_output
|
||||
|
||||
echo "Setup complete! Ready for testing."
|
||||
echo "Next: Configure Claude Code MCP settings and restart"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Cleanup Script
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Cleanup after tests
|
||||
|
||||
echo "Cleaning up test artifacts..."
|
||||
|
||||
# Remove test configs
|
||||
rm -f configs/tailwind.json
|
||||
rm -f configs/test*.json
|
||||
|
||||
# Remove test output
|
||||
rm -rf output/tailwind*
|
||||
rm -rf output/kubernetes*
|
||||
rm -rf test_output
|
||||
|
||||
echo "Cleanup complete!"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Testing Status:** [ ] Not Started / [ ] In Progress / [ ] Completed
|
||||
|
||||
**Sign-off:**
|
||||
- Tester: [Name]
|
||||
- Date: [YYYY-MM-DD]
|
||||
- Approved: [ ] Yes / [ ] No
|
||||
Reference in New Issue
Block a user