Update 32 documentation files across English and Chinese (zh-CN) docs to reflect the 10 new source types added in the previous commit. Updated files: - README.md, README.zh-CN.md — taglines, feature lists, examples, install extras - docs/reference/ — CLI_REFERENCE, FEATURE_MATRIX, MCP_REFERENCE, CONFIG_FORMAT, API_REFERENCE - docs/features/ — UNIFIED_SCRAPING with generic merge docs - docs/advanced/ — multi-source guide, MCP server guide - docs/getting-started/ — installation extras, quick-start examples - docs/user-guide/ — core-concepts, scraping, packaging, workflows (complex-merge) - docs/ — FAQ, TROUBLESHOOTING, BEST_PRACTICES, ARCHITECTURE, UNIFIED_PARSERS, README - Root — BULLETPROOF_QUICKSTART, CONTRIBUTING, ROADMAP - docs/zh-CN/ — Chinese translations for all of the above 32 files changed, +3,016 lines, -245 lines
24 KiB
MCP Reference - Skill Seekers
Version: 3.2.0
Last Updated: 2026-03-15
Complete reference for 27 MCP tools
Table of Contents
Overview
What is MCP?
MCP (Model Context Protocol) allows AI agents like Claude Code to interact with Skill Seekers through a standardized interface. Instead of running CLI commands, you can use natural language:
"Scrape the React documentation and create a skill"
"Package the output/react skill for Claude"
"List available workflow presets"
Transport Modes
The MCP server supports two transport modes:
| Mode | Use Case | Command |
|---|---|---|
| stdio | Claude Code, VS Code + Cline | skill-seekers-mcp |
| HTTP | Cursor, Windsurf, HTTP clients | skill-seekers-mcp --transport http --port 8765 |
Starting the Server
# stdio mode (default)
skill-seekers-mcp
# HTTP mode
skill-seekers-mcp --transport http --port 8765
# With custom host
skill-seekers-mcp --transport http --host 0.0.0.0 --port 8765
Tool Categories
Core Tools (9)
Essential tools for basic skill creation workflow:
| Tool | Purpose |
|---|---|
list_configs |
List preset configurations |
generate_config |
Generate config from docs URL |
validate_config |
Validate config structure |
estimate_pages |
Estimate page count |
scrape_docs |
Scrape documentation |
package_skill |
Package to .zip |
upload_skill |
Upload to platform |
enhance_skill |
AI enhancement |
install_skill |
Complete workflow |
Extended Tools (10)
Advanced scraping and analysis tools:
| Tool | Purpose |
|---|---|
scrape_github |
GitHub repository analysis |
scrape_pdf |
PDF extraction |
scrape_codebase |
Local codebase analysis |
scrape_generic |
Generic scraper for 10 new source types |
unified_scrape |
Multi-source scraping |
detect_patterns |
Pattern detection |
extract_test_examples |
Extract usage examples from tests |
build_how_to_guides |
Generate how-to guides |
extract_config_patterns |
Extract configuration patterns |
detect_conflicts |
Find doc/code discrepancies |
Config Source Tools (5)
Manage configuration sources:
| Tool | Purpose |
|---|---|
add_config_source |
Register git repo as config source |
list_config_sources |
List registered sources |
remove_config_source |
Remove config source |
fetch_config |
Fetch configs from git |
submit_config |
Submit config to source |
Config Splitting Tools (2)
Handle large documentation:
| Tool | Purpose |
|---|---|
split_config |
Split large config |
generate_router |
Generate router skill |
Vector Database Tools (4)
Export to vector databases:
| Tool | Purpose |
|---|---|
export_to_weaviate |
Export to Weaviate |
export_to_chroma |
Export to ChromaDB |
export_to_faiss |
Export to FAISS |
export_to_qdrant |
Export to Qdrant |
Workflow Tools (5)
Manage enhancement workflows:
| Tool | Purpose |
|---|---|
list_workflows |
List all workflows |
get_workflow |
Get workflow YAML |
create_workflow |
Create new workflow |
update_workflow |
Update workflow |
delete_workflow |
Delete workflow |
Tool Reference
Core Tools
list_configs
List all available preset configurations.
Parameters: None
Returns: Array of config objects
{
"configs": [
{
"name": "react",
"description": "React documentation",
"source": "bundled"
}
]
}
Example:
# Natural language
"List available configurations"
"What configs are available?"
"Show me the preset configs"
generate_config
Generate a configuration file from a documentation URL.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | Documentation URL |
name |
string | No | Config name (auto-detected) |
description |
string | No | Description (auto-detected) |
Returns: Config JSON object
Example:
# Natural language
"Generate a config for https://docs.django.com/"
"Create a Django config"
"Make a config from the React docs URL"
validate_config
Validate a configuration file structure.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
object/string | Yes | Config object or file path |
Returns: Validation result
{
"valid": true,
"errors": [],
"warnings": []
}
Example:
# Natural language
"Validate this config: {config_json}"
"Check if my config is valid"
"Validate configs/react.json"
estimate_pages
Estimate total pages for documentation scraping.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
object/string | Yes | Config object or file path |
max_discovery |
number | No | Max pages to discover (default: 1000) |
Returns: Estimation results
{
"estimated_pages": 230,
"discovery_rate": 1.28,
"estimated_time_minutes": 3.8
}
Example:
# Natural language
"Estimate pages for the React config"
"How many pages will Django docs have?"
"Estimate with max 500 pages"
scrape_docs
Scrape documentation website and generate skill.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
object/string | Yes | Config object or file path |
enhance_level |
number | No | 0-3 (default: 2) |
max_pages |
number | No | Override max pages |
dry_run |
boolean | No | Preview only |
Returns: Scraping results
{
"skill_directory": "output/react/",
"pages_scraped": 180,
"references_generated": 12,
"status": "success"
}
Example:
# Natural language
"Scrape the React documentation"
"Scrape Django with enhancement level 3"
"Do a dry run of the Vue docs scrape"
package_skill
Package skill directory into uploadable format.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
skill_directory |
string | Yes | Path to skill directory |
target |
string | No | Platform (default: claude) |
streaming |
boolean | No | Use streaming mode |
Returns: Package info
{
"package_path": "output/react-claude.zip",
"platform": "claude",
"size_bytes": 245760
}
Example:
# Natural language
"Package the React skill for Claude"
"Create a Gemini package for output/django/"
"Package with streaming mode"
upload_skill
Upload skill package to LLM platform.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
package_path |
string | Yes | Path to package file |
target |
string | No | Platform (default: claude) |
api_key |
string | No | Platform API key |
Returns: Upload result
{
"success": true,
"platform": "claude",
"skill_id": "skill_abc123"
}
Example:
# Natural language
"Upload the React package to Claude"
"Upload output/django-gemini.tar.gz to Gemini"
enhance_skill
AI-powered enhancement of SKILL.md.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
skill_directory |
string | Yes | Path to skill directory |
mode |
string | No | API or LOCAL (default: auto) |
workflow |
string | No | Workflow preset name |
Returns: Enhancement result
{
"success": true,
"mode": "LOCAL",
"skill_md_lines": 450
}
Example:
# Natural language
"Enhance the React skill"
"Enhance with security-focus workflow"
"Run enhancement in API mode"
install_skill
Complete workflow: scrape → enhance → package → upload.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
object/string | Yes | Config object or file path |
target |
string | No | Platform (default: claude) |
enhance |
boolean | No | Enable enhancement (default: true) |
upload |
boolean | No | Auto-upload (default: true) |
Returns: Installation result
{
"success": true,
"skill_directory": "output/react/",
"package_path": "output/react-claude.zip",
"uploaded": true
}
Example:
# Natural language
"Install the React skill"
"Install Django for Gemini with no upload"
"Complete install of the Vue config"
Extended Tools
scrape_github
Scrape GitHub repository.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
repo |
string | Yes | Owner/repo format |
token |
string | No | GitHub token |
name |
string | No | Skill name |
include_issues |
boolean | No | Include issues (default: true) |
include_releases |
boolean | No | Include releases (default: true) |
Example:
# Natural language
"Scrape the facebook/react repository"
"Analyze the Django GitHub repo"
"Scrape vercel/next.js with issues"
scrape_pdf
Extract content from PDF file.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
pdf_path |
string | Yes | Path to PDF file |
name |
string | No | Skill name |
enable_ocr |
boolean | No | Enable OCR for scanned PDFs |
Example:
# Natural language
"Scrape the manual.pdf file"
"Extract content from API-docs.pdf"
"Process scanned.pdf with OCR"
scrape_codebase
Analyze local codebase.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
directory |
string | Yes | Path to directory |
preset |
string | No | quick/standard/comprehensive |
languages |
array | No | Language filters |
Example:
# Natural language
"Analyze the ./my-project directory"
"Scrape this codebase with comprehensive preset"
"Analyze only Python and JavaScript files"
unified_scrape
Multi-source scraping (docs + GitHub + PDF).
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
object/string | Yes | Unified config |
merge_mode |
string | No | rule-based or claude-enhanced |
Example:
# Natural language
"Run unified scraping with my-config.json"
"Combine docs and GitHub for React"
"Multi-source scrape with claude-enhanced merge"
detect_patterns
Detect code patterns in repository.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
directory |
string | Yes | Path to directory |
pattern_types |
array | No | Types to detect |
Returns: Detected patterns
Example:
# Natural language
"Detect patterns in this codebase"
"Find architectural patterns"
"Show me the code patterns"
extract_test_examples
Extract usage examples from test files.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
directory |
string | Yes | Path to test directory |
language |
string | No | Primary language |
Returns: Test examples
Example:
# Natural language
"Extract test examples from tests/"
"Get Python test examples"
"Find usage examples in the test suite"
build_how_to_guides
Generate how-to guides from codebase.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
directory |
string | Yes | Path to directory |
topics |
array | No | Specific topics |
Returns: Generated guides
Example:
# Natural language
"Build how-to guides for this project"
"Generate guides about authentication"
"Create how-to documentation"
extract_config_patterns
Extract configuration patterns.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
directory |
string | Yes | Path to directory |
Returns: Config patterns
Example:
# Natural language
"Extract config patterns from this project"
"Find configuration examples"
"Show me how this project is configured"
detect_conflicts
Find discrepancies between documentation and code.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
docs_source |
string | Yes | Docs config or directory |
code_source |
string | Yes | Code directory or repo |
Returns: Conflict report
{
"conflicts": [
{
"type": "api_mismatch",
"doc_signature": "foo(a, b)",
"code_signature": "foo(a, b, c=default)"
}
]
}
Example:
# Natural language
"Detect conflicts between docs and code"
"Find discrepancies in React"
"Compare documentation to implementation"
scrape_generic
Scrape content from any of the 10 new source types.
Purpose: A generic entry point that delegates to the appropriate CLI scraper module for: jupyter, html, openapi, asciidoc, pptx, confluence, notion, rss, manpage, chat.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source_type |
string | Yes | One of: jupyter, html, openapi, asciidoc, pptx, confluence, notion, rss, manpage, chat |
name |
string | Yes | Skill name for the output |
path |
string | No | File or directory path (for file-based sources) |
url |
string | No | URL (for URL-based sources like confluence, notion, rss) |
Note: Either path or url must be provided depending on the source type.
Source Type → Input Mapping:
| Source Type | Typical Input | CLI Flag Used |
|---|---|---|
jupyter |
path |
--notebook |
html |
path |
--html-path |
openapi |
path |
--spec |
asciidoc |
path |
--asciidoc-path |
pptx |
path |
--pptx |
manpage |
path |
--man-path |
confluence |
path or url |
--export-path / --base-url |
notion |
path or url |
--export-path / --database-id |
rss |
path or url |
--feed-path / --feed-url |
chat |
path |
--export-path |
Returns: Scraping results with file paths and statistics
{
"skill_directory": "output/my-api/",
"source_type": "openapi",
"status": "success"
}
Example:
# Natural language
"Scrape the OpenAPI spec at api/openapi.yaml"
"Extract content from my Jupyter notebook analysis.ipynb"
"Process the Confluence export in ./wiki-export/"
"Convert the PowerPoint slides.pptx into a skill"
# Explicit tool call
scrape_generic(source_type="openapi", name="my-api", path="api/openapi.yaml")
scrape_generic(source_type="jupyter", name="ml-tutorial", path="notebooks/tutorial.ipynb")
scrape_generic(source_type="rss", name="blog", url="https://blog.example.com/feed.xml")
scrape_generic(source_type="confluence", name="wiki", path="./confluence-export/")
Config Source Tools
add_config_source
Register a git repository as a config source.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Source name |
url |
string | Yes | Git repository URL |
branch |
string | No | Git branch (default: main) |
Example:
# Natural language
"Add my-configs repo as a source"
"Register https://github.com/org/configs as configs"
list_config_sources
List all registered config sources.
Parameters: None
Returns: List of sources
Example:
# Natural language
"List my config sources"
"Show registered sources"
remove_config_source
Remove a config source.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Source name |
Example:
# Natural language
"Remove the configs source"
"Delete my old config source"
fetch_config
Fetch configs from a git source.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source |
string | Yes | Source name |
config_name |
string | No | Specific config to fetch |
Example:
# Natural language
"Fetch configs from my source"
"Get the react config from configs source"
submit_config
Submit a config to a source.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
source |
string | Yes | Source name |
config_path |
string | Yes | Path to config file |
Example:
# Natural language
"Submit my-config.json to configs source"
"Add this config to my source"
Config Splitting Tools
split_config
Split large configuration into smaller chunks.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
string | Yes | Config file path |
max_pages_per_chunk |
number | No | Pages per chunk (default: 100) |
output_dir |
string | No | Output directory |
Example:
# Natural language
"Split the large config into chunks"
"Break up this 500-page config"
"Split with 50 pages per chunk"
generate_router
Generate a router skill for large documentation.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
config |
string | Yes | Config file path |
output_dir |
string | No | Output directory |
Example:
# Natural language
"Generate a router for this large config"
"Create a router skill for Django docs"
Vector Database Tools
export_to_weaviate
Export skill to Weaviate vector database.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
skill_directory |
string | Yes | Path to skill |
weaviate_url |
string | No | Weaviate URL |
class_name |
string | No | Class/collection name |
Example:
# Natural language
"Export React skill to Weaviate"
"Send to Weaviate at localhost:8080"
export_to_chroma
Export skill to ChromaDB.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
skill_directory |
string | Yes | Path to skill |
collection_name |
string | No | Collection name |
persist_directory |
string | No | Storage directory |
Example:
# Natural language
"Export to ChromaDB"
"Send Django skill to Chroma"
export_to_faiss
Export skill to FAISS index.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
skill_directory |
string | Yes | Path to skill |
output_path |
string | No | Index file path |
Example:
# Natural language
"Export to FAISS index"
"Create FAISS index for this skill"
export_to_qdrant
Export skill to Qdrant.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
skill_directory |
string | Yes | Path to skill |
collection_name |
string | No | Collection name |
qdrant_url |
string | No | Qdrant URL |
Example:
# Natural language
"Export to Qdrant"
"Send skill to Qdrant vector DB"
Workflow Tools
list_workflows
List all available workflow presets.
Parameters: None
Returns:
{
"workflows": [
{"name": "security-focus", "source": "bundled"},
{"name": "my-custom", "source": "user"}
]
}
Example:
# Natural language
"List available workflows"
"What workflow presets do I have?"
get_workflow
Get full YAML content of a workflow.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Workflow name |
Returns: Workflow YAML
Example:
# Natural language
"Show me the security-focus workflow"
"Get the YAML for the default workflow"
create_workflow
Create a new workflow.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Workflow name |
yaml_content |
string | Yes | Workflow YAML |
Example:
# Natural language
"Create a workflow called my-workflow"
"Save this YAML as a new workflow"
update_workflow
Update an existing workflow.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Workflow name |
yaml_content |
string | Yes | New YAML content |
Example:
# Natural language
"Update my-custom workflow"
"Modify the security-focus workflow"
delete_workflow
Delete a user workflow.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Workflow name |
Example:
# Natural language
"Delete my-old-workflow"
"Remove the test workflow"
Common Patterns
Pattern 1: Quick Documentation Skill
# Natural language sequence:
"List available configs"
"Scrape the react config"
"Package output/react for Claude"
Tools: list_configs → scrape_docs → package_skill
Pattern 2: GitHub Repository Analysis
# Natural language sequence:
"Scrape the facebook/react GitHub repo"
"Enhance the output/react skill"
"Package it for Gemini"
Tools: scrape_github → enhance_skill → package_skill
Pattern 3: Complete One-Command
# Natural language:
"Install the Django skill for Claude"
Tool: install_skill
Pattern 4: Multi-Source with Workflows
# Natural language sequence:
"List available workflows"
"Run unified scrape with my-unified.json"
"Apply security-focus and api-documentation workflows"
"Package for Claude"
Tools: list_workflows → unified_scrape → enhance_skill → package_skill
Pattern 5: New Source Type Scraping
# Natural language sequence:
"Scrape the OpenAPI spec at api/openapi.yaml"
"Package the output for Claude"
Tools: scrape_generic → package_skill
Pattern 6: Vector Database Export
# Natural language sequence:
"Scrape the Django documentation"
"Export to ChromaDB"
Tools: scrape_docs → export_to_chroma
Error Handling
Common Errors
| Error | Cause | Solution |
|---|---|---|
ConfigNotFoundError |
Config doesn't exist | Check config name or path |
InvalidConfigError |
Config malformed | Use validate_config |
ScrapingError |
Network or selector issue | Check URL and selectors |
RateLimitError |
Too many requests | Wait or use token |
EnhancementError |
AI enhancement failed | Check API key or Claude Code |
Error Response Format
{
"error": true,
"error_type": "ConfigNotFoundError",
"message": "Config 'react' not found",
"suggestion": "Run list_configs to see available configs"
}
See Also
- CLI Reference - Command-line interface
- Config Format - JSON configuration
- MCP Setup Guide - Server configuration
For tool help: Ask the AI agent about specific tools