Skip to main content
Glama

list_ansible_collections

Retrieve and filter cached Ansible collections with metadata to manage Infrastructure-as-Code components efficiently on the IaC Memory MCP Server.

Instructions

List all cached Ansible collections with basic metadata

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filter_criteriaNoOptional filtering criteria

Implementation Reference

  • MCP handler function that executes the list_ansible_collections tool: calls DB helper, applies filters, formats output as text content.
    async def handle_list_ansible_collections( db: Any, arguments: Dict[str, Any], operation_id: str ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """Handle list_ansible_collections tool.""" try: logger.info("Listing Ansible collections", extra={"operation_id": operation_id}) # Get all collections collections = list_ansible_collections(db) # Apply any filters from criteria filter_criteria = arguments.get("filter_criteria", {}) if filter_criteria and "name_pattern" in filter_criteria: pattern = re.compile(filter_criteria["name_pattern"]) collections = [c for c in collections if pattern.match(c["name"])] # Format output if not collections: return [TextContent(type="text", text="No collections found")] output = ["Available Ansible Collections:"] for c in collections: output.append( f"\n- {c['name']} v{c['version']}" f"\n Modules: {c['module_count']}" f"\n Updated: {c['updated_at']}" f"\n Latest Module Update: {c.get('latest_module_update', 'N/A')}" f"\n Docs: {c['doc_url']}" ) return [TextContent(type="text", text="\n".join(output))] except Exception as e: error_msg = f"Failed to list collections: {str(e)}" logger.error(error_msg, extra={"operation_id": operation_id}) raise McpError( types.ErrorData( code=types.INTERNAL_ERROR, message=error_msg, data={ "tool": "list_ansible_collections", "operation_id": operation_id, }, ) )
  • Input schema validation definition for the list_ansible_collections tool.
    "list_ansible_collections": { "type": "object", "description": "List all cached Ansible collections with basic metadata", "required": [], "properties": { "filter_criteria": { "type": "object", "description": "Optional filtering criteria", "properties": { "name_pattern": { "type": "string", "description": "Regex pattern to filter collection names", } }, } }, },
  • Registration of ansible tool handlers in a dictionary mapping tool names to handler functions.
    ansible_tool_handlers = { "get_ansible_collection_info": handle_get_ansible_collection_info, "list_ansible_collections": handle_list_ansible_collections, "get_collection_version_history": handle_get_collection_version_history, "get_ansible_module_info": handle_get_ansible_module_info, "list_collection_modules": handle_list_collection_modules, "get_module_version_compatibility": handle_get_module_version_compatibility, "add_ansible_collection": handle_add_ansible_collection, "add_ansible_module": handle_add_ansible_module, }
  • Database helper function that queries and returns list of Ansible collections with module counts and metadata.
    def list_ansible_collections(db: DatabaseManager) -> List[Dict]: """Get all Ansible collections with basic metadata. Args: db: Database manager instance Returns: List of collections with metadata including module counts """ logger.info( "Listing Ansible collections", extra={"operation": "list_ansible_collections"} ) try: with db.get_connection() as conn: conn.execute("PRAGMA busy_timeout = 5000") # 5 second timeout # Get collections with module counts collections = conn.execute( """ SELECT c.*, COUNT(m.id) as module_count, MAX(m.updated_at) as latest_module_update FROM ansible_collections c LEFT JOIN ansible_modules m ON c.id = m.collection_id GROUP BY c.id ORDER BY c.name """ ).fetchall() return [dict(c) for c in collections] except sqlite3.Error as e: error_msg = f"Failed to list collections: {str(e)}" logger.error(error_msg) raise DatabaseError(error_msg)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AgentWong/iac-memory-mcp-server-project'

If you have feedback or need assistance with the MCP directory API, please join our Discord server