list_config_sources
View all registered configuration sources from git repositories. Identify available sources for fetching configurations.
Instructions
List all registered config sources. Shows git repositories that have been registered with add_config_source. Use this to see available sources for fetch_config.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| enabled_only | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- Primary handler function for list_config_sources tool. Takes args dict with optional 'enabled_only' parameter. Uses SourceManager.list_sources() to fetch source list and formats the output as a TextContent result.
async def list_config_sources_tool(args: dict) -> list[TextContent]: """ List all registered config sources. Shows git repositories that have been registered with add_config_source. Args: args: Dictionary containing: - enabled_only: Only show enabled sources (default: false) Returns: List of TextContent with source list """ from skill_seekers.mcp.source_manager import SourceManager enabled_only = args.get("enabled_only", False) try: source_manager = SourceManager() sources = source_manager.list_sources(enabled_only=enabled_only) if not sources: result = """📋 No config sources registered To add a source: add_config_source( name="team", git_url="https://github.com/myorg/configs.git" ) 💡 Once added, use: fetch_config(source="team", config_name="...") """ return [TextContent(type="text", text=result)] # Format sources list result = f"📋 Config Sources ({len(sources)} total" if enabled_only: result += ", enabled only" result += ")\n\n" for source in sources: status_icon = "✓" if source.get("enabled", True) else "✗" result += f"{status_icon} **{source['name']}**\n" result += f" 📁 {source['git_url']}\n" result += f" 🔖 Type: {source['type']} | 🌿 Branch: {source['branch']}\n" result += f" 🔑 Token: {source.get('token_env', 'None')} | ⚡ Priority: {source['priority']}\n" result += f" 🕒 Added: {source['added_at'][:19]}\n" result += "\n" result += """Usage: # Fetch config from a source fetch_config(source="SOURCE_NAME", config_name="CONFIG_NAME") # Add new source add_config_source(name="...", git_url="...") # Remove source remove_config_source(name="SOURCE_NAME") """ return [TextContent(type="text", text=result)] except Exception as e: return [TextContent(type="text", text=f"❌ Error: {str(e)}")] - FastMCP-decorated tool registration for list_config_sources. Defines the MCP tool with description 'List all registered config sources' and parameter 'enabled_only' (bool, default false). Delegates to list_config_sources_impl.
@safe_tool_decorator( description="List all registered config sources. Shows git repositories that have been registered with add_config_source. Use this to see available sources for fetch_config." ) async def list_config_sources(enabled_only: bool = False) -> str: """ List all registered config sources. Args: enabled_only: Only show enabled sources (default: false) Returns: List of registered sources with details. """ result = await list_config_sources_impl({"enabled_only": enabled_only}) if isinstance(result, list) and result: return result[0].text if hasattr(result[0], "text") else str(result[0]) return str(result) - The args schema accepted by list_config_sources_tool: accepts a dictionary with optional 'enabled_only' key (bool, default false).
async def list_config_sources_tool(args: dict) -> list[TextContent]: """ List all registered config sources. Shows git repositories that have been registered with add_config_source. Args: args: Dictionary containing: - enabled_only: Only show enabled sources (default: false) Returns: List of TextContent with source list """ - src/skill_seekers/mcp/tools/__init__.py:79-81 (registration)Re-exports list_config_sources_tool as list_config_sources_impl for use by server_fastmcp.py.
from .source_tools import ( list_config_sources_tool as list_config_sources_impl, ) - SourceManager.list_sources() - The underlying data source. Reads the ~/.skill-seekers/sources.json registry and optionally filters by enabled status.
def list_sources(self, enabled_only: bool = False) -> list[dict]: """ List all config sources. Args: enabled_only: If True, only return enabled sources Returns: List of source dictionaries (sorted by priority) """ registry = self._read_registry() if enabled_only: return [s for s in registry["sources"] if s.get("enabled", True)] return registry["sources"]