get_provider_version_history
Track and retrieve the version history of a Terraform provider to manage and audit Infrastructure-as-Code updates effectively.
Instructions
Retrieve version history for a specific Terraform provider
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| provider_name | Yes | Name of the Terraform provider |
Implementation Reference
- The core handler function that retrieves the version history of a Terraform provider from the database by querying the terraform_providers table.def get_provider_version_history(db: DatabaseManager, provider_name: str) -> List[Dict]: """Get version history for a specific Terraform provider. Args: db: Database manager instance provider_name: Name of the provider Returns: List of version entries with timestamps and URLs """ logger.info( "Getting provider version history", extra={ "provider_name": provider_name, "operation": "get_provider_version_history", }, ) try: with db.get_connection() as conn: versions = conn.execute( """ SELECT version, source_url, doc_url, created_at, updated_at FROM terraform_providers WHERE name = ? ORDER BY created_at DESC """, (provider_name,), ).fetchall() # Add debug logging logger.debug(f"Found {len(versions)} versions for provider {provider_name}") return [dict(v) for v in versions] except sqlite3.Error as e: error_msg = f"Failed to get provider version history: {str(e)}" logger.error(error_msg) raise DatabaseError(error_msg)
- JSON schema defining the input parameters for the get_provider_version_history tool, requiring a provider_name string."get_provider_version_history": { "type": "object", "description": "Retrieve version history for a specific Terraform provider", "required": ["provider_name"], "properties": { "provider_name": { "type": "string", "description": "Name of the Terraform provider", } }, },
- src/iac_memory_mcp_server/tools/__init__.py:31-41 (registration)The registration of the generic tool dispatcher and list_tools handler that includes this tool via TOOL_SCHEMAS from db/tools.py.async def handle_call_tool( tool_name: str, arguments: Dict[str, Any], ctx: RequestContext | None = None ) -> Any: """Main entry point for tool execution.""" return await base_call_tool(tool_name, arguments, ctx, tool_handlers) async def handle_list_tools(ctx: RequestContext = None) -> list: """Main entry point for tool listing.""" return await base_list_tools(TOOL_SCHEMAS, ctx)