get_provider_version_history
Retrieve version history for Terraform providers to track changes and ensure compatibility in infrastructure-as-code projects.
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 handler function that executes the core logic of retrieving Terraform provider version history from the database.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)
- The input schema definition for the get_provider_version_history tool, used for validation and registration."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:46-55 (registration)The MCP server registration of tool call and list handlers, which use the TOOL_SCHEMAS including get_provider_version_history schema.@server.call_tool() async def call_tool( name: str, arguments: Dict[str, Any], ctx: RequestContext | None = None ): return await handle_call_tool(name, arguments, ctx) @server.list_tools() async def list_tools(ctx: RequestContext = None): return await handle_list_tools(ctx)