Skip to main content
Glama

update_provider_version

Update a Terraform provider's version, source URL, and documentation links to maintain accurate and up-to-date IaC resource information.

Instructions

Update an existing Terraform provider's version information and documentation links

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
new_doc_urlNoNew documentation URL
new_source_urlNoNew source URL
new_versionYesNew version
provider_nameYesName of the provider

Implementation Reference

  • MCP tool handler function that validates input, calls the database update function, and returns success/error messages.
    async def handle_update_provider_version( db: Any, arguments: Dict[str, Any], operation_id: str ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """Handle update_provider_version tool.""" try: logger.info( "Updating provider version", extra={ "provider_name": arguments["provider_name"], "new_version": arguments["new_version"], "operation_id": operation_id, }, ) # Validate version format (x.y.z) version_pattern = re.compile(r'^\d+\.\d+\.\d+$') if not version_pattern.match(arguments["new_version"]): error_msg = "Invalid version format. Version must be in x.y.z format (e.g. 1.0.0)" logger.error(error_msg, extra={"operation_id": operation_id}) return [types.TextContent(type="text", text=error_msg)] # Update provider version success = update_provider_version( db, arguments["provider_name"], arguments["new_version"], arguments.get("new_source_url"), arguments.get("new_doc_url"), ) if success: return [types.TextContent( type="text", text=f"Successfully updated provider {arguments['provider_name']} to version {arguments['new_version']}" )] else: error_msg = f"Provider {arguments['provider_name']} not found" logger.error(error_msg, extra={"operation_id": operation_id}) return [types.TextContent(type="text", text=error_msg)] except Exception as e: error_msg = f"Failed to update provider version: {str(e)}" logger.error(error_msg, extra={"operation_id": operation_id}) return [types.TextContent(type="text", text=error_msg)]
  • Registration of the tool handler in the terraform_tool_handlers dictionary, mapping 'update_provider_version' to its handler function.
    terraform_tool_handlers = { "get_terraform_provider_info": handle_get_terraform_provider_info, "list_provider_resources": handle_list_provider_resources, "get_terraform_resource_info": handle_get_terraform_resource_info, "add_terraform_provider": handle_add_terraform_provider, "add_terraform_resource": handle_add_terraform_resource, "update_provider_version": handle_update_provider_version, }
  • JSON schema definition for the update_provider_version tool inputs.
    "update_provider_version": { "type": "object", "description": "Update an existing Terraform provider's version information and documentation links", "required": ["provider_name", "new_version"], "properties": { "provider_name": {"type": "string", "description": "Name of the provider"}, "new_version": {"type": "string", "description": "New version"}, "new_source_url": {"type": "string", "description": "New source URL"}, "new_doc_url": {"type": "string", "description": "New documentation URL"}, }, },
  • Core database helper function that performs the SQL UPDATE on terraform_providers table by provider name.
    def update_provider_version( db: DatabaseManager, provider_name: str, new_version: str, new_source_url: Optional[str] = None, new_doc_url: Optional[str] = None, ) -> bool: """Update a Terraform provider's version and optional URLs.""" logger.info( "Updating provider version", extra={ "provider_name": provider_name, "new_version": new_version, "has_source_url": bool(new_source_url), "has_doc_url": bool(new_doc_url), "operation": "update_provider_version", }, ) try: updates = ["version = ?"] params = [new_version] if new_source_url: updates.append("source_url = ?") params.append(new_source_url) if new_doc_url: updates.append("doc_url = ?") params.append(new_doc_url) updates.append("updated_at = CURRENT_TIMESTAMP") params.append(provider_name) with db.get_connection() as conn: cursor = conn.execute( f"""UPDATE terraform_providers SET {', '.join(updates)} WHERE name = ?""", tuple(params), ) return cursor.rowcount > 0 except sqlite3.Error as e: error_msg = f"Failed to update provider version: {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