Files
skill-seekers-reference/src/skill_seekers/mcp/tools/__init__.py
yusyus 83b9a695ba feat: add sync-config command to detect and update config start_urls (#306)
## 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
2026-03-15 02:16:32 +03:00

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",
]