MCP Reference - Skill Seekers

May 30, 2026 · View on GitHub

Version: 3.6.0
Last Updated: 2026-04-09
Complete reference for 40 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:

ModeUse CaseCommand
stdioClaude Code, VS Code + Clineskill-seekers-mcp
HTTPCursor, Windsurf, HTTP clientsskill-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:

ToolPurpose
list_configsList preset configurations
generate_configGenerate config from docs URL
validate_configValidate config structure
estimate_pagesEstimate page count
scrape_docsScrape documentation
package_skillPackage to .zip
upload_skillUpload to platform
enhance_skillAI enhancement
install_skillComplete workflow

Extended Tools (10)

Advanced scraping and analysis tools:

ToolPurpose
scrape_githubGitHub repository analysis
scrape_pdfPDF extraction
scrape_videoVideo transcript extraction
scrape_codebaseLocal codebase analysis
scrape_genericGeneric scraper for 10 new source types
sync_configSync config from remote source
detect_patternsPattern detection
extract_test_examplesExtract usage examples from tests
build_how_to_guidesGenerate how-to guides
extract_config_patternsExtract configuration patterns

Config Source Tools (5)

Manage configuration sources:

ToolPurpose
add_config_sourceRegister git repo as config source
list_config_sourcesList registered sources
remove_config_sourceRemove config source
fetch_configFetch configs from git
submit_configSubmit config to source

Config Splitting Tools (2)

Handle large documentation:

ToolPurpose
split_configSplit large config
generate_routerGenerate router skill

Config Publishing Tools (1)

Push configs to registered source repositories:

ToolPurpose
push_configPush validated config to a registered config source repo

Marketplace Tools (4)

Manage plugin marketplace repositories:

ToolPurpose
add_marketplaceRegister a marketplace repository
list_marketplacesList registered marketplaces
remove_marketplaceRemove a marketplace
publish_to_marketplacePublish skill to a marketplace repo

Vector Database Tools (4)

Export to vector databases:

ToolPurpose
export_to_weaviateExport to Weaviate
export_to_chromaExport to ChromaDB
export_to_faissExport to FAISS
export_to_qdrantExport to Qdrant

Workflow Tools (5)

Manage enhancement workflows:

ToolPurpose
list_workflowsList all workflows
get_workflowGet workflow YAML
create_workflowCreate new workflow
update_workflowUpdate workflow
delete_workflowDelete 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:

NameTypeRequiredDescription
urlstringYesDocumentation URL
namestringNoConfig name (auto-detected)
descriptionstringNoDescription (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:

NameTypeRequiredDescription
configobject/stringYesConfig 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:

NameTypeRequiredDescription
configobject/stringYesConfig object or file path
max_discoverynumberNoMax 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:

NameTypeRequiredDescription
configobject/stringYesConfig object or file path
enhance_levelnumberNo0-3 (default: 2)
max_pagesnumberNoOverride max pages
dry_runbooleanNoPreview 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:

NameTypeRequiredDescription
skill_directorystringYesPath to skill directory
targetstringNoPlatform (default: claude)
streamingbooleanNoUse 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:

NameTypeRequiredDescription
package_pathstringYesPath to package file
targetstringNoPlatform (default: claude)
api_keystringNoPlatform 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:

NameTypeRequiredDescription
skill_directorystringYesPath to skill directory
modestringNoAPI or LOCAL (default: auto)
workflowstringNoWorkflow 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:

NameTypeRequiredDescription
configobject/stringYesConfig object or file path
targetstringNoPlatform (default: claude)
enhancebooleanNoEnable enhancement (default: true)
uploadbooleanNoAuto-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:

NameTypeRequiredDescription
repostringYesOwner/repo format
tokenstringNoGitHub token
namestringNoSkill name
include_issuesbooleanNoInclude issues (default: true)
include_releasesbooleanNoInclude 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:

NameTypeRequiredDescription
pdf_pathstringYesPath to PDF file
namestringNoSkill name
enable_ocrbooleanNoEnable 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:

NameTypeRequiredDescription
directorystringYesPath to directory
presetstringNoquick/standard/comprehensive
languagesarrayNoLanguage 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:

NameTypeRequiredDescription
configobject/stringYesUnified config
merge_modestringNorule-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:

NameTypeRequiredDescription
directorystringYesPath to directory
pattern_typesarrayNoTypes 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:

NameTypeRequiredDescription
directorystringYesPath to test directory
languagestringNoPrimary 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:

NameTypeRequiredDescription
directorystringYesPath to directory
topicsarrayNoSpecific 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:

NameTypeRequiredDescription
directorystringYesPath 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:

NameTypeRequiredDescription
docs_sourcestringYesDocs config or directory
code_sourcestringYesCode 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:

NameTypeRequiredDescription
source_typestringYesOne of: jupyter, html, openapi, asciidoc, pptx, confluence, notion, rss, manpage, chat
namestringYesSkill name for the output
pathstringNoFile or directory path (for file-based sources)
urlstringNoURL (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 TypeTypical InputCLI Flag Used
jupyterpath--notebook
htmlpath--html-path
openapipath--spec
asciidocpath--asciidoc-path
pptxpath--pptx
manpagepath--man-path
confluencepath or url--export-path / --base-url
notionpath or url--export-path / --database-id
rsspath or url--feed-path / --feed-url
chatpath--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:

NameTypeRequiredDescription
namestringYesSource name
urlstringYesGit repository URL
branchstringNoGit 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:

NameTypeRequiredDescription
namestringYesSource name

Example:

# Natural language
"Remove the configs source"
"Delete my old config source"

fetch_config

Fetch configs from a git source.

Parameters:

NameTypeRequiredDescription
sourcestringYesSource name
config_namestringNoSpecific 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:

NameTypeRequiredDescription
sourcestringYesSource name
config_pathstringYesPath 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:

NameTypeRequiredDescription
configstringYesConfig file path
max_pages_per_chunknumberNoPages per chunk (default: 100)
output_dirstringNoOutput 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:

NameTypeRequiredDescription
configstringYesConfig file path
output_dirstringNoOutput 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:

NameTypeRequiredDescription
skill_directorystringYesPath to skill
weaviate_urlstringNoWeaviate URL
class_namestringNoClass/collection name

Example:

# Natural language
"Export React skill to Weaviate"
"Send to Weaviate at localhost:8080"

export_to_chroma

Export skill to ChromaDB.

Parameters:

NameTypeRequiredDescription
skill_directorystringYesPath to skill
collection_namestringNoCollection name
persist_directorystringNoStorage directory

Example:

# Natural language
"Export to ChromaDB"
"Send Django skill to Chroma"

export_to_faiss

Export skill to FAISS index.

Parameters:

NameTypeRequiredDescription
skill_directorystringYesPath to skill
output_pathstringNoIndex file path

Example:

# Natural language
"Export to FAISS index"
"Create FAISS index for this skill"

export_to_qdrant

Export skill to Qdrant.

Parameters:

NameTypeRequiredDescription
skill_directorystringYesPath to skill
collection_namestringNoCollection name
qdrant_urlstringNoQdrant 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:

NameTypeRequiredDescription
namestringYesWorkflow 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:

NameTypeRequiredDescription
namestringYesWorkflow name
yaml_contentstringYesWorkflow YAML

Example:

# Natural language
"Create a workflow called my-workflow"
"Save this YAML as a new workflow"

update_workflow

Update an existing workflow.

Parameters:

NameTypeRequiredDescription
namestringYesWorkflow name
yaml_contentstringYesNew YAML content

Example:

# Natural language
"Update my-custom workflow"
"Modify the security-focus workflow"

delete_workflow

Delete a user workflow.

Parameters:

NameTypeRequiredDescription
namestringYesWorkflow 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_configsscrape_docspackage_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_githubenhance_skillpackage_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_workflowsunified_scrapeenhance_skillpackage_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_genericpackage_skill


Pattern 6: Vector Database Export

# Natural language sequence:
"Scrape the Django documentation"
"Export to ChromaDB"

Tools: scrape_docsexport_to_chroma


Error Handling

Common Errors

ErrorCauseSolution
ConfigNotFoundErrorConfig doesn't existCheck config name or path
InvalidConfigErrorConfig malformedUse validate_config
ScrapingErrorNetwork or selector issueCheck URL and selectors
RateLimitErrorToo many requestsWait or use token
EnhancementErrorAI enhancement failedCheck 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


For tool help: Ask the AI agent about specific tools