## Summary Add `skill-seekers sync-config` subcommand that crawls a docs site's navigation, diffs discovered URLs against a config's start_urls, and optionally writes the updated list back with --apply. - BFS link discovery with configurable depth (default 2), max-pages, rate-limit - Respects url_patterns.include/exclude from config - Supports optional nav_seed_urls config field - Handles both unified (sources array) and legacy flat config formats - MCP tool sync_config included - 57 tests (39 unit + 18 E2E with local HTTP server) - Fixed CI: renamed summary job to "Tests" to match branch protection rule Closes #306
166 lines
4.3 KiB
Python
166 lines
4.3 KiB
Python
"""
|
|
MCP Tool Implementations
|
|
|
|
This package contains modular tool implementations for the Skill Seekers MCP server.
|
|
Tools are organized by functionality:
|
|
|
|
- config_tools: Configuration management (generate, list, validate)
|
|
- scraping_tools: Scraping operations (docs, GitHub, PDF, estimation)
|
|
- packaging_tools: Skill packaging and upload
|
|
- splitting_tools: Config splitting and router generation
|
|
- source_tools: Config source management (fetch, submit, add/remove sources)
|
|
- vector_db_tools: Vector database export (Weaviate, Chroma, FAISS, Qdrant)
|
|
"""
|
|
|
|
# Import centralized version
|
|
from skill_seekers._version import __version__
|
|
|
|
from .config_tools import (
|
|
generate_config as generate_config_impl,
|
|
)
|
|
from .config_tools import (
|
|
list_configs as list_configs_impl,
|
|
)
|
|
from .config_tools import (
|
|
validate_config as validate_config_impl,
|
|
)
|
|
from .packaging_tools import (
|
|
enhance_skill_tool as enhance_skill_impl,
|
|
)
|
|
from .packaging_tools import (
|
|
install_skill_tool as install_skill_impl,
|
|
)
|
|
from .packaging_tools import (
|
|
package_skill_tool as package_skill_impl,
|
|
)
|
|
from .packaging_tools import (
|
|
upload_skill_tool as upload_skill_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
build_how_to_guides_tool as build_how_to_guides_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
detect_patterns_tool as detect_patterns_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
estimate_pages_tool as estimate_pages_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
extract_config_patterns_tool as extract_config_patterns_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
extract_test_examples_tool as extract_test_examples_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
scrape_codebase_tool as scrape_codebase_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
scrape_docs_tool as scrape_docs_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
scrape_github_tool as scrape_github_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
scrape_pdf_tool as scrape_pdf_impl,
|
|
)
|
|
from .scraping_tools import (
|
|
scrape_video_tool as scrape_video_impl,
|
|
)
|
|
from .source_tools import (
|
|
add_config_source_tool as add_config_source_impl,
|
|
)
|
|
from .source_tools import (
|
|
fetch_config_tool as fetch_config_impl,
|
|
)
|
|
from .source_tools import (
|
|
list_config_sources_tool as list_config_sources_impl,
|
|
)
|
|
from .source_tools import (
|
|
remove_config_source_tool as remove_config_source_impl,
|
|
)
|
|
from .source_tools import (
|
|
submit_config_tool as submit_config_impl,
|
|
)
|
|
from .splitting_tools import (
|
|
generate_router as generate_router_impl,
|
|
)
|
|
from .splitting_tools import (
|
|
split_config as split_config_impl,
|
|
)
|
|
from .vector_db_tools import (
|
|
export_to_chroma_impl,
|
|
)
|
|
from .vector_db_tools import (
|
|
export_to_faiss_impl,
|
|
)
|
|
from .vector_db_tools import (
|
|
export_to_qdrant_impl,
|
|
)
|
|
from .vector_db_tools import (
|
|
export_to_weaviate_impl,
|
|
)
|
|
from .sync_config_tools import (
|
|
sync_config_tool as sync_config_impl,
|
|
)
|
|
from .workflow_tools import (
|
|
create_workflow_tool as create_workflow_impl,
|
|
)
|
|
from .workflow_tools import (
|
|
delete_workflow_tool as delete_workflow_impl,
|
|
)
|
|
from .workflow_tools import (
|
|
get_workflow_tool as get_workflow_impl,
|
|
)
|
|
from .workflow_tools import (
|
|
list_workflows_tool as list_workflows_impl,
|
|
)
|
|
from .workflow_tools import (
|
|
update_workflow_tool as update_workflow_impl,
|
|
)
|
|
|
|
__all__ = [
|
|
"__version__",
|
|
# Config tools
|
|
"generate_config_impl",
|
|
"list_configs_impl",
|
|
"validate_config_impl",
|
|
# Scraping tools
|
|
"estimate_pages_impl",
|
|
"scrape_docs_impl",
|
|
"scrape_github_impl",
|
|
"scrape_pdf_impl",
|
|
"scrape_video_impl",
|
|
"scrape_codebase_impl",
|
|
"detect_patterns_impl",
|
|
"extract_test_examples_impl",
|
|
"build_how_to_guides_impl",
|
|
"extract_config_patterns_impl",
|
|
# Packaging tools
|
|
"package_skill_impl",
|
|
"upload_skill_impl",
|
|
"enhance_skill_impl",
|
|
"install_skill_impl",
|
|
# Splitting tools
|
|
"split_config_impl",
|
|
"generate_router_impl",
|
|
# Source tools
|
|
"fetch_config_impl",
|
|
"submit_config_impl",
|
|
"add_config_source_impl",
|
|
"list_config_sources_impl",
|
|
"remove_config_source_impl",
|
|
# Vector database tools
|
|
"export_to_weaviate_impl",
|
|
"export_to_chroma_impl",
|
|
"export_to_faiss_impl",
|
|
"export_to_qdrant_impl",
|
|
# Sync config tools
|
|
"sync_config_impl",
|
|
# Workflow tools
|
|
"list_workflows_impl",
|
|
"get_workflow_impl",
|
|
"create_workflow_impl",
|
|
"update_workflow_impl",
|
|
"delete_workflow_impl",
|
|
]
|